我是 MVC (MVC3) 的新手,所以不确定实现这一点的最佳方法。
我想创建一个单一的“主”视图(非强类型)。这个“主”视图将包含多个强类型的局部视图,每个视图都包含一个表单。因此,每个部分视图都将回发到它们自己的 POST 操作,该操作可以执行任何操作。我看到的问题是,当局部视图回发时,它只需要更新局部视图本身,而不影响页面上的其他局部视图。
当我现在从部分视图回发时,它只是单独返回部分视图,而不是整个“主”页面。
如何在 MVC3 中实现此功能?(从高层的角度)
谢谢
我是 MVC (MVC3) 的新手,所以不确定实现这一点的最佳方法。
我想创建一个单一的“主”视图(非强类型)。这个“主”视图将包含多个强类型的局部视图,每个视图都包含一个表单。因此,每个部分视图都将回发到它们自己的 POST 操作,该操作可以执行任何操作。我看到的问题是,当局部视图回发时,它只需要更新局部视图本身,而不影响页面上的其他局部视图。
当我现在从部分视图回发时,它只是单独返回部分视图,而不是整个“主”页面。
如何在 MVC3 中实现此功能?(从高层的角度)
谢谢
您可以通过 AJAX 发布数据。在我的示例中,我使用 jQuery:
<div id="first-form" class="form-container">
@Html.Partial("FirstPartial")
</div>
<div id="second-form" class="form-container">
@Html.Partial("SecondPartial")
</div>
// and here go rest forms
您的部分观点可能如下:
@model YourModelClass
@using (Html.BeginForm())
{
// some fields go there
}
<input type="button" value="Save Form Data" class="save-button"/>
Js将遵循:
$("input.save-button").on("click", function () {
var button = $(this);
var container = button.closest("div.form-container");
var url = container.find("form").attr("action");
container.busy($.post(url, function (response) {
container.html(response);
}));
return false;
});