2010-06-14 79 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"] %>