在 ASP.NET Core 视图和 Razor 页面中,我们可以使用:
public class LoginModel
{
[BindProperty]
public bool DisplayCaptcha { get; set; }
// OR
[ViewData]
public bool DisplayCaptcha { get; set; }
// OR
[TempData]
public bool DisplayCaptcha { get; set; }
}
在视图/页面/控制器之间共享数据...
但是什么时候使用每一个呢?
就我而言,它是一个简单的登录页面,当用户设置错误的密码时,我将显示验证码。
在表单帖子中,我将属性设置为 true (DisplayCaptcha = true
)并使用验证码渲染页面:
@if (Model.DisplayCaptcha)
{
<div class="captcha-header">
...
</div>
}
这工作正常,但我不太困惑属性应该是什么类型,或者即使我应该使用任何类型。
ViewData
当数据从 PageModel 传递到 Page 时应使用。
BindProperty
当数据通过 POST/GET 从 PageModel 传递到 Page 时应使用,反之亦然。这是双向绑定。
TempData
当数据只应读取一次时应使用。
在你的情况下你应该使用BindProperty
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)