【发布时间】:2018-05-04 07:32:37
【问题描述】:
我在这里查看了大约 20 个答案来重新评分,但似乎没有一个对我有用。它们看起来也很老套。
我有一个巨大的 View 模型,我试图通过 Ajax 在两个 PartialViewResults 之间来回传递。但是,似乎没有任何效果。
这是我的代码的“通用”版本:
控制器
public PartialViewResult _View1(Model model)
{
return PatialView(model);
}
*I have another one of these for Partial view2*
查看
<div id="div1">Load View 1 here</div>
<script>
var m = @Html.Raw(Json.Encode(Model));
console.log(m);
$.ajax({
url: '@Url.Action("_View1")',
data: {'model' : m},
dataType: "html",
success: function (result) {
$("#View1").html(result);
},
error: function (e) {
$("#View1").html("<div class='alert alert-danger' role='alert'>Error: Getting View.</div>");
}
});
</script>
我在我的 ajax 调用上尝试了各种配置。任何帮助都会很棒,谢谢。 我不想将视图模型的每个变量存储到 vars 中并将它们单独传递给控制器。视图模型太大了。
*注意:当我执行 console.log(m) 时,浏览器的控制台会显示我所有的视图数据。我只是不确定如何将所有这些数据传递给控制器
注意2:如果stackoverflow上已经有解决方案,请随时链接到它。由于某种原因,我无法找到它。*
【问题讨论】:
-
var m = @Html.Raw(Json.Encode(Model));将是原始模型,而不是您编辑的任何内容,因此使用它毫无意义。无论如何它必须是data: m, -
@StephenMuecke 有没有办法回发绑定到模型的新输入数据?感谢您让我知道
var m = @Html.Raw(Json.Encode(Model));是原始模型。 -
var m = $(yourForm).serialize();(和data: m,)。但是您的控制器方法只是表明您再次返回相同的模型(这会很疯狂)所以不清楚您真正在做什么 -
我很难听懂你的问题。
-
@StephenMuecke 你是说我应该把模型序列化成表格?谢谢。
标签: c# json ajax razor asp.net-mvc-5