2010-10-29 74 views
3

我是ASP.NET MVC中的新成員,因此問題可能會顯示爲「愚蠢」,對不起。部分ASP.NET MVC查看提交

我在我的主視圖中有一個局部視圖。

部分視圖提交調用HomeController中的Action方法的表單。

它與服務器驗證正常工作,問題是後只呈現部分視圖。

如何在post之後渲染整個Home視圖?

關於代碼:

裏面PartialView我有一個表格:

<% using (Html.BeginForm("Request", "Home")) { %> 

的要求就是我的HomeController裏面定義的ActionResult的。

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

此時,在發佈後,ascx顯示服務器驗證錯誤,但只顯示PartialView ascx代碼。 的URL看起來像這樣的帖子後:

http://xxxxxxxxxxx/Home/Request 

我要的是展示裏面顯示服務器驗證錯誤的ASCX整個主視圖。

+1

使用asp.net-MVC標籤爲 'MVC' 是一個普遍的標籤。 – Stefanvds 2010-10-29 09:37:00

+0

你的標籤很好。你只需編輯你的問題,並添加一些細節和一點源代碼 – 2010-10-29 09:40:18

回答

2

更改返回類型也:

[HttpPost] 
public PartialViewResult Request(RequestModel model) 
{ 
    if (ModelState.IsValid) 
    { 
    // Saving data ..... 
    } 
    else 
    { 
    // Show Server Validation Errors 
    return PartialView(); 
    } 
} 
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> 

假設你的視圖/ ASCX/HTML是這樣的:

<div id="formDiv"> 
    <% Html.RenderAction("Request"); %> 
</div> 
2

我在代碼中面臨同樣的問題,所以我只是在我的代碼中做了一個小的修改,它工作。 而不是返回同樣的看法,我用

return Redirect(Request.Referrer) 

早些時候:

return View();