gpt4 book ai didi

c# - Ajax.ActionLink 从一个 View 发布整个模型?

转载 作者:太空狗 更新时间:2023-10-29 20:24:50 24 4
gpt4 key购买 nike

我有一个强类型化到 ViewModel 的 View 。是否可以将 View 中模型的所有数据传递回 Controller 操作?是这样的吗?

@Ajax.ActionLink("(Export to Excel)", "ExportCsv", "SurveyResponse", new {  
ResultsViewModel = Model }, new AjaxOptions {HttpMethod = "POST"})

然后从 ResultsViewModel 中收集数据作为另一个 Controller 中的参数

public ActionResult ExportCsv(ResultsViewModel resultsviewmodel)
{

}

最佳答案

不,您不能像这样在操作链接中传递整个 View 模型。您可以只传递此模型的 id,然后使用此 id 从您最初检索它的任何地方检索实际模型:

@Ajax.ActionLink(
"(Export to Excel)",
"ExportCsv",
"SurveyResponse",
new { id = Model.Id },
new AjaxOptions { HttpMethod = "POST" }
)

作为替代方案,您可以将模型序列化为 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>

关于c# - Ajax.ActionLink 从一个 View 发布整个模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com