Работа с ViewData в Razor Pages - глобальная установка ключа для страницы - PullRequest
0 голосов
/ 06 мая 2020

Есть ли способ установить глобальный ключ ViewData на странице? В моем примере я должен установить его для каждого глагола.

В официальной документации или это, вероятно, неофициальная но лучше документация, которую я не делал ' Ничего не нахожу по этому поводу.

[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 
    }
}

Спасибо,

1 Ответ

0 голосов
/ 06 мая 2020

Я бы рекомендовал использовать атрибут [ViewData]:

https://www.learnrazorpages.com/razor-pages/viewdata#viewdata -attribute

Это сделает свойство строго типизированным и заполненным автоматически. Я не уверен, какой тип данных «IsRecaptcaEnabledOnPasswordReset», но я предположил строку ниже:

[ViewData]
public string IsRecaptcaEnabledOnPasswordReset { get; set; }

На странице Razor вы сможете получить доступ к свойству, используя:

@ViewData["IsRecaptcaEnabledOnPasswordReset"]
@Model.IsRecaptcaEnabledOnPasswordReset
...