當我將'Model'對象(由LinqToSQL生成)發佈到控制器時,我可以查詢'ModelState.IsValid',並且如果任何驗證屬性屬性和值不驗證,它將被設置爲'false'。對ASP.NET MVC中的普通對象無效的驗證
但是,如果我發佈我自己的類的自定義對象,即使該類的屬性具有驗證屬性並且給出了錯誤的值,ModelState.IsValid似乎總是返回'true'。
爲什麼這隻適用於DataContext模型對象?這些對象使它們與ModelState.IsValid一起工作,而普通的類不會呢?
如何使它與普通類一起工作?
控制器代碼:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogIn(MyProject.Website.ViewModels.Shared.LogIn model)
{
if (ModelState.IsValid)
return View(model);
// ... code to log in the user
}
視圖模型代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using MyProject.Website.Validators;
using System.ComponentModel;
public class LogIn
{
public LogInModes LogInMode { get; set; }
[Required]
[EmailAddress]
public string EmailAddress { get; set; }
public string Password { get; set; }
public bool RememberMe { get; set; }
public string ReturnUrl { get; set; }
}
我懷疑這不是框架,但沒有一點代碼就很難說出問題所在。 – tvanfosson 2009-07-25 13:06:08