我有一個表單,它可以組裝更大表單的各個部分。例如:如何使用AJAX渲染部分表單元素
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個小時。
我已經瞭解了更多關於發回信息給控制器的信息,請在下面的回答中看到我的更新,看看是否有幫助 –