Сохранение параметров QueryString при возникновении ошибки проверки - PullRequest
1 голос
/ 27 июня 2011

У меня есть форма для загрузки файла, файл имеет (Имя nvarchar, FileData varbinary (max))

Имя и FileData являются обязательными полями

По какой-то причине проверка FileData (с использованием атрибута Required) не работает, поэтому я искал в Интернете и нашел метод расширения Html Helper, который отображает входной файл (файл) и может его проверить.

Но проблема в том, что когда я добавляю ошибку в состояние модели и return View() returnUrl, который был в строке запроса, исчезает, как я могу сохранить переменные returnUrl и / или некоторые другие переменные строки запроса в таком случае?

Вы можете заметить, я не могу использовать RedirectToAction, мне нужно return View(), чтобы в итоговой проверке могла отображаться ошибка (и, надеюсь, поле Имя сохраняет свое значение).

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

Короткий ответ: вы не можете вернуть View так, как вам хотелось бы, а также сохранить параметры строки запроса.

То, что я хотел бы сделать, это сохранить обратный URL как часть модели представления.

Таким образом, когда вы return View() будете иметь доступ к обратному URL в модели, которую вы передаете.

0 голосов
/ 05 июля 2018

Это реально возможно (кредит Ивану Корытину). Вы должны поместить параметры как часть действия формы (я улучшил его, чтобы просто повторить строку запроса):

<form action="@Url.Action("CreateEntity", "Employee")?@(Request.QueryString)"
  enctype="multipart/form-data" method="POST">

При выполнении следующей строки запроса (и GET параметры) теперь сохраняются:

[HttpPost]
public ActionResult MyAction(MyAction model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }
...