如何在 @Html.Raw(@Url.Action()) 中传递 Javascript 列表对象?
我的 Controller 中有一个模型,它具有以下属性作为 js List 对象。
我的 Controller 中的方法需要这个模型。
public ActionResult ExportDataExtReport( DataExtractionReportModel DataExtReportModel)
调用到达 Controller 时对象为空
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;
最佳答案
ASP.NET MVC 对于理解 JSON 数据对象非常强大。
我不知道这是否是最佳实践,但我会告诉你我如何管理它们:
当我在客户端代码上有一个 JSON 数据对象时,在提交到新 Controller 之前,我会将其字符串化存储在隐藏输入中。
然后我提交表单(该操作是 Controller 方法调用)。现在,我的 Controller 接收一个表单对象,但它们的参数之一是字符串化的 JSON 对象。
我通常有一个业务模型类,其数据结构与到达 Controller 的 JSON 数据包的数据结构兼容。使用 JSON 序列化程序并将结果转换为该模型类类型可以使您的包日期加载到业务模型类的实例中。
希望这有帮助
关于javascript - 如何在 @Html.Raw(@Url.Action()) 中传递 Javascript List 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544443/