我有一个表格,它组装了一个较大表格的部分。例如:
Html.RenderPartial("Partials/MealPreference", Model);
我想动态地将部分添加到表单中。鉴于我的部分观点的性质,我也必须传递模型。在这方面,我失败得很惨。
我的包含页面上的标记:
<div id="additionalPreference"></div>
<input type="button" value="Add Additional Preference" id="addPreference" />
<script>
$(document).ready(function () {
$('#addPreference').click(function () {
$.ajax({
type: "POST",
url: '@Html("AddPreference", "Main")',
success: function (html) {
$(html).appendTo('#additionalPreference');
console.log(html);
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Error");
},
complete: function () {
console.log("End");
}
});
});
});
</script>
我的控制器动作:
[HttpPost]
public ActionResult AddPreference(FormViewModel model)
{
if (ModelState.IsValid)
{
return PartialView("Partials/AdditionalPreference", model);
}
else
{
return PartialView("Partials/LoadFailed");
}
}
该模型永远无效。如何将模型从包含页面传递给控制器操作?这似乎是一件简单的事情(它肯定会在 Web 表单中),但我已经为此窒息了 3 个小时。