もう狂ってる。MVC 1 から 2 にアップグレードした MVC ソリューションがあります。
ここにいくつかのコードがあります:
コントローラーで:
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 は常に有効です。ただし、モデルは正しく設定されています。したがって、ユーザー名とパスワードの両方を空白のままにしてフォームを投稿しても、モデルの状態は引き続き有効です。ああ!
追加情報: IoD の構造マップを使用します。以前は、MVC 2 にアップグレードする前に MS データ注釈ライブラリを使用していたため、global.asax.cs に次のものがありました。
今それを削除しました。
私は本当に基本的で間違ったことをしていると確信しています。誰かがそれを指摘できれば、それは素晴らしいことです。乾杯