В ASP.NET Core Views и Razor Pages мы можем использовать:
public class LoginModel
{
[BindProperty]
public bool DisplayCaptcha { get; set; }
// OR
[ViewData]
public bool DisplayCaptcha { get; set; }
// OR
[TempData]
public bool DisplayCaptcha { get; set; }
}
Для обмена данными между View / Page / Controller ...
Но когда использовать каждый из них?
В моем случае это простая страница входа в систему, и когда пользователь установит неправильный пароль, я покажу капчу.
В форме сообщения я устанавливаю для свойства значение true (DisplayCaptcha = true
) и отображаю страницу с помощью капчи:
@if (Model.DisplayCaptcha)
{
<div class="captcha-header">
...
</div>
}
Это работает нормально, но я немного путаюсь, какой тип атрибута должен быть, или даже если я должен его использовать.