部分ASP.NET MVC视图提交

opa*_*era 3 asp.net asp.net-mvc asp.net-mvc-partialview

我是ASP.NET MVC的新手,所以问题可能显得"愚蠢",对不起.

我在Home视图中有一个部分视图.

部分视图在HomeController中提交一个调用Action方法的表单.

它适用于服务器验证,问题是在帖子后只呈现部分视图.

如何在发布后呈现整个主页视图?

关于代码:

在PartialView里面我有一个表单:

<% using (Html.BeginForm("Request", "Home")) { %>
Run Code Online (Sandbox Code Playgroud)

Request是我的HomeController中定义的ActionResult.

[HttpPost]
public ActionResult Request(RequestModel model)
{
  if (ModelState.IsValid)
  {
    // Saving data .....
  }
  else
  {
     // Show Server Validation Errors
     return View();
  }
}
Run Code Online (Sandbox Code Playgroud)

此时,在帖子之后,ascx显示服务器验证错误,但仅呈现PartialView ascx代码.在帖子之后,Url看起来像这样:

http://xxxxxxxxxxx/Home/Request
Run Code Online (Sandbox Code Playgroud)

我想要的是显示整个Home视图,其中ascx显示服务器验证错误.

Joh*_*udi 5

尝试使用jQuery进行部分提交:

<script type="text/javascript">
$(document).ready(function () {
    $("input[type=submit]").live("click", function () {
        var f = $("input[type=submit]").parents("form");
        var action = f.attr("action");
        var serializedForm = f.serialize();
        $.ajax({
            type: 'POST',
            url: action,
            data: serializedForm,
            success: function (data, textStatus, request) {
                if (!data == "") {
                    // redisplay partial view
                    $("#formDiv").html(data);
                }
                else {
                    // do whatever on sucess
                }
            }
        });
        return false;
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

假设您的view/ascx/HTML是这样的:

<div id="formDiv">
    <% Html.RenderAction("Request"); %>
</div>
Run Code Online (Sandbox Code Playgroud)