Страницы бритвы, список выбора становится пустым после использования return page()C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Страницы бритвы, список выбора становится пустым после использования return page()

Сообщение Anonymous »


У меня к вам простой вопрос. Я использую .NET core 7 с Razor Pages. У меня есть страница добавления, и здесь я выбираю категорию. Я получаю информацию о категории из базы данных с помощью метода OnGet() и отправляю ее на страницу. Никаких проблем пока нет. Когда я сохраняю форму, мой метод OnPostAddAsync() работает, и я сохраняю ее в базе данных, но если во время регистрации возникает какая-либо ошибка, я возвращаю сообщение об ошибке на экран и использую " return Page()", чтобы предотвратить потерю пользователем введенной информации. Когда я использую этот метод, информация о моей категории не отображается в раскрывающемся списке. Для меня очень важно, чтобы введенная пользователем информация не потерялась. Вот почему я не использую RedirectToPage(). Как мне это сделать, не обновляя страницу, не теряя информацию о пользователе и, самое главное, не заполняя список категорий?

Мой метод OnGetAsync():

public async Task OnGetAsync() { вар ответ = ждут _category.List(SessionValues()[0]); if (response.Message == "Ошибка аутентификации") { HttpContext.Session.Remove("userToken"); HttpContext.Session.Remove("userInfo"); вернуть новый RedirectToPageResult("Войти"); } если (ответ.Статус) { Список Список = новый список(); foreach (элемент var в ответе.Данные) { List.Add(новый SelectListItem { Значение = элемент.Id.ToString(), Текст = элемент.Имя }); Параметры = Список; } } еще { ToastrError = ответ.Сообщение; } вернуть страницу(); }
Изображение


Мой метод OnPostAddAsync():

public async Task OnPostAddAsync(AddRequestModel addModel) { вар ответ = ждут _product.Add(SessionValues()[0]); if (response.Message == "Ошибка аутентификации") { HttpContext.Session.Remove("userToken"); HttpContext.Session.Remove("userInfo"); вернуть новый RedirectToPageResult("Войти"); } если (ответ.Статус) { ToastrSuccess = ответ.Сообщение; вернуть новый RedirectToPageResult («Добавить»); } ToastrError = ответ.Сообщение; вернуть страницу(); } Если именно здесь произойдет ошибка, код выполнит return Page() с сообщением.


Изображение


Вот свойства, которые я использую:

[ViewData] общественная строка ToastrError {получить; набор; } [ТемпДанные] общественная строка ToastrSuccess {get; набор; } общественная AddRequestModel addModel {get; набор; } public List Options {get; набор; } Я много искал в Интернете и пробовал много вещей, но ничего не помогло.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»