即使帶有 Required 注釋的屬性具有有效值,ModelState.IsValid 也會回傳 false。我記錄了物件的字串表示形式,它顯示用戶名和密碼不為空。
用戶模型
public class User
{
public int Id { get; set; }
[Required]
public string Username { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
public override string ToString()
{
return $"Username: {Username}, Password: {Password}";
}
}
控制器
public class AuthController : Controller
{
private readonly UserContext _context;
private readonly ILogger<User> _logger;
[BindProperty]
public User AuthUser { get; set; }
public AuthController(ILogger<User> logger, UserContext context)
{
_logger = logger;
_context = context;
}
public IActionResult Login()
{
return View(new User());
}
[HttpPost]
public async Task<IActionResult> Login(string returnURL = null)
{
if (!ModelState.IsValid)
{
_logger.LogInformation(AuthUser.ToString());
//Executes this block even if Username and Password has data
}
}
uj5u.com熱心網友回復:
public IActionResult Login()
{
return View(new User());
}
[HttpPost]
public async Task<IActionResult> Login(User model,string returnURL = null)
{
if (ModelState.IsValid)
{
_logger.LogInformation(model.ToString());
}
return View(model);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493135.html
標籤:C# asp.net-mvc asp.net 核心 模型视图控制器
