2009-06-18 60 views
1

我有在我的驗證消息都出現在添加操作罰款的問題,但是當涉及到更新頁面,確認郵件未顯示:MVC Html.ValidationMessage不開火更新

這是我的行爲,IsValid作爲false出現,並且動作重定向到編輯視圖,但沒有顯示任何驗證消息。我的方法有什麼問題嗎?

[Authorize] 
    public ActionResult UpdateCar(CarDTO car) 
    { 
     try 
     { 
      _carTask.Update(car); //required Name field not set 
     } 
     catch (RulesException ex) 
     { 
      ex.AddModelStateErrors(ModelState, null); 
     } 

     if (!ModelState.IsValid) 
     { 
      return RedirectToAction(ViewNames.EditCar, new {carKey = car.carKey}); 
     } 
     return RedirectToAction(ViewNames.Home, new {carKey = car.carKey}); 
    } 


<li> 
    <label for="Name">Car Name:</label> 
    <%= Html.TextBoxFor(x => x.Name, new { watermark="Car Name" })%> 
     <br /> 
     <%= Html.ValidationMessage("Name") %> 
</li> 

回答

2

如果表單無效,那麼您將重定向到一個新頁面,該頁面將丟失您設置的任何模態錯誤值。相反,只需返回視圖。沒有檢查過的語法,但像下面的東西。

if (!ModelState.IsValid) 
{ 
    return View(ViewNames.EditCar, new {carKey = car.carKey}); 
} 

return RedirectToAction(ViewNames.Home, new {carKey = car.carKey});