2010-06-14 34 views

回答

11

如果你還沒有,看看這個維基文章the MVC pattern

請記住,您的觀點是只有應該負責顯示數據。因此,您應該儘量將視圖中的邏輯數量降至最低。如果可能的話,那麼,處理的ModelState錯誤(如的ModelState錯誤是失敗的模型綁定嘗試的結果),在你的控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     if (!ModelState.IsValid) 
     { 
      return RedirectToAction("wherever"); 
     } 

     return View(); 
    } 
} 

如果你有你的觀點來處理的ModelState錯誤,你可以這樣做這樣:

<% if (ViewData.ModelState.IsValidField("key")) { %> 
    model state is valid 
<% } %> 

但請記住,您可以用您的控制器完成同樣的事情,從而從您的視圖中刪除不必要的邏輯。要做到這一點,你可以放置的ModelState邏輯控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     if (!ModelState.IsValidField("key")) 
     { 
      TempData["ErrorMessage"] = "not valid"; 
     } 
     else 
     { 
      TempData["ErrorMessage"] = "valid"; 
     } 

     return View(); 
    } 
} 

然後,在你看來,你可以參考TempData的消息,這減輕任何不必要的邏輯決策的看法:

<%= TempData["ErrorMessage"] %>