如何在@ Html.Raw(@ Url.Action())中传递Javascript列表对象?如何在@ Html.Raw(@ Url.Action())中传递Javascript List对象?
我在我的控制器中有一个模型,它具有以下属性作为js List对象。
我的控制器中的方法需要此模型。
public ActionResult ExportDataExtReport(DataExtractionReportModel DataExtReportModel)
呼叫到达控制器通过该对象为null
ReportModel.push({
ReportId : ReportSelID,
ReportName : "DataExtraction",
StartDate : DEYearSelID,
CategoryId : DataExtCategoryId,
SurveyId : QuestionnaireSelID,
SurveyName: QuestionaireName,
OperationalUnits : DataExtOpUnit
});
var link = '@Html.Raw(@Url.Action("ExportDataExtReport", "Location", new { DataExtReportModel = -1}))';
link = link.replace("-1", ,ReportModel[0]);
window.location.href = link;
你做了一个GET。您需要传递每个单独的名称/值对作为查询字符串或路由值 –
如果是Ajax调用并返回View,通常我会使用JSON.stringify(ReportModel [0])。但在这种情况下,我必须使用window.location。因为我需要生成一个Excel文件。除了传递每个名称/值对之外,还有其他方式,因为我的模型可以有更多的属性。 –
您可以使用'$ .param()'方法来简化它。但它不清楚为什么你生成一个对象,然后将它推入一个数组 - 它只是从这些值中生成查询字符串的代码少。而且你还没有显示出所有的属性值('OperationalUnits'建议一个集合,因此不会像你已经显示的那样工作) –