gpt4 book ai didi

asp.net-core - ASP.NET Core ViewData、BindProperty 还是 TempData?

转载 作者:行者123 更新时间:2023-12-04 01:28:38 24 4
gpt4 key购买 nike

在 ASP.NET Core View 和 Razor 页面中,我们可以使用:

public class LoginModel
{
[BindProperty]
public bool DisplayCaptcha { get; set; }

// OR

[ViewData]
public bool DisplayCaptcha { get; set; }

// OR

[TempData]
public bool DisplayCaptcha { get; set; }
}

在 View /页面/ Controller 之间共享数据...
但是什么时候使用每一个?

在我的情况下,它是一个简单的登录页面,当用户设置错误的密码时,我将显示一个验证码。

在表单帖子中,我将属性设置为 true ( DisplayCaptcha = true ) 并使用验证码呈现页面:

@if (Model.DisplayCaptcha)
{
<div class="captcha-header">
...
</div>
}

这工作正常,但我有点混淆属性应该是什么类型,或者即使我应该使用任何类型。

最佳答案

ViewData应该在数据从 PageModel 传递到 Page 时使用。
BindProperty当数据通过 POST/GET 从 PageModel 传递到 Page 时应使用,反之亦然。这是双向绑定(bind)。
TempData当数据应该只读取一次时应该使用。

在您的情况下,您应该使用 BindProperty .

关于asp.net-core - ASP.NET Core ViewData、BindProperty 还是 TempData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52066526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com