2015-03-02 50 views
0

我使用POST方法將PageA(文本框)發送到PageB,並且我在PageB中有編輯鏈接。如果我點擊編輯鏈接,我想用我的POST數據回到PageA。我能夠使用Jquery Post方法POST數據,但是URL重定向不起作用。 (我需要的數據網頁B發佈網頁C也)asp.net MVC發佈數據使用jQuery的URL重定向不起作用

查看:網頁A

@using (Html.BeginForm("ControllerName", "PageB", FormMethod.Post)) 
    { 
     //textboxes 
    } 

網頁B:

<a>Edit</a> 
@using (Html.BeginForm("ControllerName", "PageC", FormMethod.Post)) 
     { 
      //textboxes 
     } 

的Jquery:

$("a").click(function() { 
     $.ajax({ 
      url: '/ControllerName/PageA', 
      type: 'POST', 
      data: ModelData, 
      contentType: "application/json", 
      datatype: "html", 
      success: function (data) { 
       //window.location = "/ControllerName/PageA"; 

      }, 
      error: function (XMLHttpRequest, textStatus, request) { 
       alert(XMLHttpRequest.responseText); 
      } 
     }); 

    }); 

控制器:

[HttpGet] 
    public Task<ViewResult>PageA() 
     { 
      Model model = new Model(); 

      return Task.FromResult<ViewResult>(View(model)); 

     } 

     [HttpPost] 
     public Task<ActionResult> PageA(Model model) 
     { 
      return Task.FromResult<ActionResult>(View(model)); 
      //return Task.FromResult<ActionResult>(RedirectToAction("PageA", model)); 

     } 

如果我使用window.location =「/ ControllerName/PageA」;它重定向到PageA,但GET控制器方法正在調用,此時模型爲空。

回答

0

你需要做的是對GET方法,併爲它

public Task<ViewResult> PageA(int editID = 0) 

,然後測試該輸入測試。如果它沒有通過,那麼加載一個空白頁面(如果它被傳遞),使用該ID來填充模型以發送到視圖。
然後確保你通過ID通過您的window.location的編輯

window.location = "@Url.Action("ControllerName", "PageA", new { editID = "id to be edited here" })"; 
+0

網址的重定向,但型號是空的:( – user3194721 2015-03-02 21:30:51

+0

你看到你在你的控制器通過ID? – 2015-03-02 21:45:12