Передача значения из контроллера регистра

У меня проблема с передачей значения из метода OnPostAsync в Register.cshtml. ViewBag не работает. Как решить эту проблему.

public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
    returnUrl = returnUrl ?? Url.Content("~/");
    if (ModelState.IsValid)
    {
        var db = new ApplicationDbContext(_optionsBuilder.Options);
        var email = db.Users.Where(s => s.Email == Input.Email);
        if (email.Count() != 0)
        {
            ViewBag.pom = 100; // this doesn't work
            ViewData["duplicateEmail"] = "Email is already taken";
            return Page();
        }

...
@{
    ViewData["Title"] = "Register";
}

<h2>@ViewData["Title"]</h2>

<div class = "row">
    <div class = "col-md-4">
        <form asp-route-returnUrl = "@Model.ReturnUrl" method = "post">
            <h4>Create a new account.</h4>
            <h4>@ViewData["duplicateEmail"] error: @ViewBag.pom</h4>
            <hr />
...
ViewData["duplicateEmail"]- это работа?
TanvirArjel 10.04.2019 17:50

да ViewData работает

kamilm758 10.04.2019 18:07

Тогда ViewBag.pom тоже сработает. Пожалуйста, покажите свой код просмотра, где вы используете ViewBag.pom

TanvirArjel 10.04.2019 18:09

в приведенном выше коде "Viewbag" подчеркнуто красным, как будто не хватает какого-то "использования"

kamilm758 10.04.2019 18:24

Добавьте код просмотра к вопросу.

TanvirArjel 10.04.2019 18:24

Я не могу -> «Похоже, что ваш пост — это в основном код; пожалуйста, добавьте больше деталей». Я новичок в stackoverflow

kamilm758 10.04.2019 18:29

Хорошо! Вставьте его в комментарий.

TanvirArjel 10.04.2019 18:30

вижу ничего страшного! Можете ли вы получить удаленный доступ с помощью Team Viewer, пожалуйста?

TanvirArjel 10.04.2019 18:36

Эта проблема в помеченном файле: ibb.co/rZFk6Jt

kamilm758 10.04.2019 18:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Согласно документы:

ViewBag isn't available in Razor Pages.

Для получения дополнительной информации о том, что Зачем недоступен в готовом виде, см. этот Проблема с GitHub, который включает несколько комментариев от самого Дэмиена Эдвардса:

We purposefully didn't add ViewBag because I wanted to discourage its use.

...

ViewBag uses dynamic which in our testing introduces a measurable performance impact on the processing of pages or views that use it. As such, I'd rather it not be available by default.

Решение состоит в том, чтобы либо использовать явное свойство (как вы делаете для ReturnUrl), либо просто использовать ViewData (как вы делаете для duplicateEmail).

попробуйте заменить viewBag на viewData :

ViewData["pom"] = 100; 
ViewData["duplicateEmail"] = "Email is already taken";
return Page();

<div class = "row">
    <div class = "col-md-4">
        <form asp-route-returnUrl = "@Model.ReturnUrl" method = "post">
            <h4>Create a new account.</h4>
            <h4>@ViewData["duplicateEmail"] error: @ViewData["pom"]</h4>
            <hr />

ViewBag был намеренно опущен на Razor Pages.

Другие вопросы по теме