我有簡單的登錄表單。
除了一件事,一切都很好。當您進入該頁面時,即使未向控制器發送任何數據,它也會始終顯示驗證(例如,字段需要)。
有沒有什麼方法可以僅在有實際的POST請求時才顯示驗證?.NET核心:總是顯示驗證錯誤
查看:
@model LoginViewModel
<form asp-controller="User" asp-action="Login" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<label asp-for="Email"></label>
<input asp-for="Email" />
<span asp-validation-for="Email"></span>
<label asp-for="Password"></label>
<input asp-for="Password" />
<span asp-validation-for="Password"></span>
<button type="submit">Login</button>
</form>
視圖模型:
public class LoginViewModel
{
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
}
行動:
[HttpGet]
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(LoginViewModel model)
{
ClaimsPrincipal userClaims = _userRepository.TryLogin(model);
if (userClaims != null)
{
...
}
return View(model);
}
[這個SO問題應該是有趣的](http://stackoverflow.com/q/20642328/463206).... [和這個SO問題](http://stackoverflow.com/q/7390902/ 463206) – radarbob
嘗試從Login函數中取出'[HttpGet]'。 –