2014-02-21 33 views
1

我有頁面爲插入用戶和這個工作很好,但在我插入新的信息後,我發送新的模型,但這並不work.the信息,我插入之前仍然在文本框中沒有任何錯誤。爲什麼???模型發佈後不會改變爲什麼

return View(new User());

@using (@Html.BeginForm("RegisterUser", "UserManagement", FormMethod.Post)) 
{ 
    @Html.AntiForgeryToken() 

    <table class="Registertbl"> 
     <tr> 
      <td>نام*</td> 
      <td> @Html.TextBoxFor(m => m.FName, new { maxlength = 20})<br /> 
      </td>    
      <td>سمت*</td> 
      <td>@Html.TextBoxFor(m => m.Post, new { maxlength = 200})</td>     
     </tr> 
    </table> 
    <br /> 
     <input type="submit" value="Insert" class="insertBtn" /> 
     @Html.ActionLink("back", "ViewUserList", "UserManagement") 
} 

//控制器

[HttpGet] 
    public ActionResult RegisterUser() 
    { 
     return View(new User()); 
    } 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult RegisterUser(Common.UsersManagement.Entities.User model) 
    { 
     SetUserManagement(); 
     var Result = userManagement.RegisterUser(model); 
     if (Result.Mode == Common.Extensions.ActionResultMode.Successfully) 
     { 
       return View(new User()); 
     } 
     // if not Successfull 
     return View(model); 
    } 

回答

3

maf748是正確的,你應該張貼重定向消息獲取型號牽引。您可以使用TempData與GET操作方法進行通信,以顯示一條消息,例如,

TempData.Message = "User registered."; 
return RedirectToAction("RegisterUser"); 

然後在你的RegisterUser查看您可以檢查是否TempData.Message有一個值。

但是,如果畢竟你仍然希望做到這一點,你可以試試ModelState.Clear(),然後返回新的視圖。這將導致的問題是,如果用戶在瀏覽器中刷新頁面,則會將它們發送回您的Post方法,並在瀏覽器中提示他們「您想重新提交數據」消息,並可能在你的數據庫。

+0

TempData是很好的幫助.tnx alottttttt –

+0

我有另一個問題:如果用戶打開多個選項卡消息將顯示用戶在不同的網頁中,我可以解決這個問題嗎? [Question Link](http://stackoverflow.com/questions/21980420/tempdata-message-in-deferent-tab) –

3

嘗試重定向回GET RegisterUser。

原因是:當您將表單提交給MVC時,ModelState中的所有值(基本上是請求值)優先於您傳遞給視圖的任何模型。重定向會給你一個空的ViewDataDictionary,因此所有值將從你傳遞(新用戶())

if (Result.Mode == Common.Extensions.ActionResultMode.Successfully) 
{ 
    return RedirectToAction("RegisterUser"); 
} 
+0

不,我想顯示消息給user.is有一種方法來清空ViewDataDictionary ?????? –

+1

我鼓勵你堅持使用這種方法,由Craig W – maf748

+0

概述的原因我需要TempData,我發現它 –

相關問題