在 Razor 页面中使用 ViewData - 为页面全局设置键
Working With ViewData in Razor Pages - set key globally for a page
有没有办法在页面上全局设置一个ViewData键?
在我的示例中,我必须在每个动词上设置它。
在 official documentation or this probably unofficial 但更好的 文档中我没有找到关于此事的任何信息。
[AllowAnonymous]
public class PasswordResetModel : PageModel {
private readonly IConfiguration _configuration;
private readonly ILogger<PasswordResetModel> _logger;
private readonly IRecaptchaService _recaptchaService;
private readonly RecaptchaOptions _recaptchaOptions;
public PasswordResetModel(IConfiguration configuration,
ILogger<PasswordResetModel> logger,
IRecaptchaService recaptchaService) {
_configuration = configuration;
_logger = logger;
_recaptchaService = recaptchaService;
_recaptchaOptions = new RecaptchaOptions();
_configuration.Bind("reCAPTCHA", _recaptchaOptions);
//ViewData["ping"] = "pong"; -- here is not possible
}
[BindProperty]
public PasswordResetRequest passwordResetRequest { get; set; }
public void OnGet() {
ViewData["IsRecaptcaEnabledOnPasswordReset"] = _recaptchaOptions.IsRecaptcaEnabledOnPasswordReset;
}
public async Task<IActionResult> OnPostAsync() {
ViewData["IsRecaptcaEnabledOnPasswordReset"] = _recaptchaOptions.IsRecaptcaEnabledOnPasswordReset;
//code skipped intentionally
}
}
谢谢,
我建议使用 [ViewData] 属性:
https://www.learnrazorpages.com/razor-pages/viewdata#viewdata-attribute
这将使 属性 成为强类型并自动填充。我不确定 "IsRecaptcaEnabledOnPasswordReset" 是什么数据类型,但我假设以下字符串:
[ViewData]
public string IsRecaptcaEnabledOnPasswordReset { get; set; }
在您的 Razor 页面中,您将能够使用以下任一方式访问 属性:
@ViewData["IsRecaptcaEnabledOnPasswordReset"]
@Model.IsRecaptcaEnabledOnPasswordReset
有没有办法在页面上全局设置一个ViewData键? 在我的示例中,我必须在每个动词上设置它。
在 official documentation or this probably unofficial 但更好的 文档中我没有找到关于此事的任何信息。
[AllowAnonymous]
public class PasswordResetModel : PageModel {
private readonly IConfiguration _configuration;
private readonly ILogger<PasswordResetModel> _logger;
private readonly IRecaptchaService _recaptchaService;
private readonly RecaptchaOptions _recaptchaOptions;
public PasswordResetModel(IConfiguration configuration,
ILogger<PasswordResetModel> logger,
IRecaptchaService recaptchaService) {
_configuration = configuration;
_logger = logger;
_recaptchaService = recaptchaService;
_recaptchaOptions = new RecaptchaOptions();
_configuration.Bind("reCAPTCHA", _recaptchaOptions);
//ViewData["ping"] = "pong"; -- here is not possible
}
[BindProperty]
public PasswordResetRequest passwordResetRequest { get; set; }
public void OnGet() {
ViewData["IsRecaptcaEnabledOnPasswordReset"] = _recaptchaOptions.IsRecaptcaEnabledOnPasswordReset;
}
public async Task<IActionResult> OnPostAsync() {
ViewData["IsRecaptcaEnabledOnPasswordReset"] = _recaptchaOptions.IsRecaptcaEnabledOnPasswordReset;
//code skipped intentionally
}
}
谢谢,
我建议使用 [ViewData] 属性:
https://www.learnrazorpages.com/razor-pages/viewdata#viewdata-attribute
这将使 属性 成为强类型并自动填充。我不确定 "IsRecaptcaEnabledOnPasswordReset" 是什么数据类型,但我假设以下字符串:
[ViewData]
public string IsRecaptcaEnabledOnPasswordReset { get; set; }
在您的 Razor 页面中,您将能够使用以下任一方式访问 属性:
@ViewData["IsRecaptcaEnabledOnPasswordReset"]
@Model.IsRecaptcaEnabledOnPasswordReset