2010-06-14 31 views

Trả lời

11

Nếu bạn chưa xem bài viết này trên the MVC pattern.

Lưu ý rằng chế độ xem của bạn là chỉ được coi là phụ trách hiển thị dữ liệu. Như vậy, bạn nên cố gắng giữ số lượng logic trong tầm nhìn của bạn ở mức tối thiểu. Nếu có thể, sau đó, xử lý lỗi ModelState (như lỗi ModelState là kết quả của một mô hình thất bại ràng buộc nỗ lực) trong điều khiển của bạn:

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

     return View(); 
    } 
} 

Nếu bạn phải xử lý các lỗi ModelState theo quan điểm của bạn, bạn có thể làm như vậy như thế này :

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

Nhưng hãy nhớ rằng bạn có thể thực hiện điều tương tự với bộ điều khiển và do đó loại bỏ logic không cần thiết khỏi chế độ xem của bạn. Để làm như vậy, bạn có thể đặt logic ModelState trong điều khiển của bạn:

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

     return View(); 
    } 
} 

Và sau đó, theo quan điểm của bạn, bạn có thể tham khảo thông điệp TempData, mà làm giảm quan điểm của bất kỳ logic định không cần thiết:

<%= TempData["ErrorMessage"] %> 
Các vấn đề liên quan