私は単純なログインフォームを持っています。
すべては1つのことを除いて素晴らしい作品です。ページを入力すると、コントローラーにデータがポストされていない場合でも、常に妥当性検査が示されます(たとえば、フィールドが必要です。)。
実際にPOSTリクエストが行われたときにのみ検証を表示する方法はありますか?.NET Core:検証エラーを常に表示
ビュー:
@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>
のViewModel:
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
ログイン機能から '[HttpGet]'を取り出してみてください。 –