現在發瘋了。我有一個MVC解決方案,我已經從MVC 1升級到2.這一切都正常工作....除了驗證!MVC 2數據註釋問題
下面是一些代碼:
在控制器:
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Security.Principal;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using System.Web.UI;
using MF.Services.Authentication;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace MF.Controllers
{
//basic viewmodel
public class LogOnViewData
{
[Required]
public string UserName { get; set; }
[Required]
public string Password { get; set; }
}
[HandleError]
public class AccountController : Controller
{
[HttpPost]
public ActionResult LogOn(LogOnViewData lvd, string returnUrl)
{
if (ModelState.IsValid)
{
//do stuff - IsValid is always true
}
}
}
}
的ModelState中始終有效。但是,該模型正在正確填充。因此,如果我將用戶名和密碼留空,並且發佈表單,模型狀態仍然有效。哎呀!
額外信息:使用物聯網的結構圖。以前,升級到MVC 2之前使用MS數據註釋庫,所以這在我的global.asax.cs中: ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder();
現在已經刪除了。
我確定我正在做一些非常基本和錯誤的事情。如果有人能指出這將是奇妙的。 乾杯
哦,我明白了 - 謝謝。這確實是非常有意義的:) 但是,我已經開始了一個全新的MVC項目,它對登錄控制動作進行了驗證,這與我的幾乎完全一樣。當然,它工作正常。我只是有點難以理解,不同之處在於! 再次感謝 – Louzzzzzz 2010-03-19 08:42:08
修正了它!刪除然後重新添加我的web項目中的所有引用,並按預期工作。 – Louzzzzzz 2010-03-19 09:10:27