use*_*794 7 c# asp.net-mvc entity-framework razor asp.net-mvc-3
我有一个强烈键入ViewModel的视图.是否可以从视图中的模型传递所有数据,返回到控制器操作?像这样的东西?
@Ajax.ActionLink("(Export to Excel)", "ExportCsv", "SurveyResponse", new {
ResultsViewModel = Model }, new AjaxOptions {HttpMethod = "POST"})
Run Code Online (Sandbox Code Playgroud)
然后从ResultsViewModel收集数据作为另一个控制器中的参数
public ActionResult ExportCsv(ResultsViewModel resultsviewmodel)
{
}
Run Code Online (Sandbox Code Playgroud)
不,您不能在操作链接中像这样传递整个视图模型。您可以仅传递此模型的,然后使用它从最初检索它的位置id检索实际模型:id
@Ajax.ActionLink(
"(Export to Excel)",
"ExportCsv",
"SurveyResponse",
new { id = Model.Id },
new AjaxOptions { HttpMethod = "POST" }
)
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您可以将模型序列化为 javascript 文字,然后使用 AJAX 请求将其作为 JSON 数据发送:
@Html.ActionLink(
"(Export to Excel)",
"ExportCsv",
"SurveyResponse",
null,
new { @class = "exportCsv" }
)
<script type="text/javascript">
$('.exportCsv').click(function() {
var model = @Html.Raw(Json.Encode(Model));
$.ajax({
url: this.href,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(model),
success: function(result) {
}
});
return false;
});
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16088 次 |
| 最近记录: |