MVC опубликовал значения - PullRequest
       11

MVC опубликовал значения

0 голосов
/ 30 октября 2009

В приложении asp.net MVC у нас есть механизм, когда мы отправляем форма и, если есть какие-либо проблемы со значениями (проверка не проходит), форма отображается обратно, сохраняя старые значения. Как это случилось? Где хранятся эти значения? или они собраны из FormCollection.

Помощь будет оценена.

С уважением Parminder

Ответы [ 3 ]

0 голосов
/ 30 октября 2009

Один из способов сделать это - использовать ModelState.AddModelError

Хороший учебник по обработке ошибок MVC можно найти здесь

0 голосов
/ 03 апреля 2016

Вы можете сделать это, вернув представление с данными

if (ModelState.IsValid == false) 
{
return View(X);
}

X - это данные, которые вам нужно вернуть

0 голосов
/ 30 октября 2009

Это действительно зависит от того, как вы настроили свои действия контроллера и ваши представления, потому что ASP.NET MVC ищет значения в нескольких местах.

Ваше предположение, что он использует FormCollection, является своего рода неправильным, посколькуFormCollection - это то, что Action вашего контроллера принимает в качестве параметра, и оно полностью отделено от вашего View, где на самом деле отображаются значения.

В 1.0 по умолчанию в шаблоне Edit для представлений используется 2-йПараметр в большинстве HtmlHelpers, например:

<%=Html.Textbox("Title", Model.ID)%>

Это будет иметь старое значение, полученное из привязанного объекта модели.Так что, если вы явно не пройдете проверку и вернете View (объект), значения будут извлечены из этого объекта.Тем не менее, если вы явно проваливаете проверку, например:

if (ModelState.IsValid == false)
{
    return View();
}

, тогда код HtmlHelper, скорее всего, приведет к ошибке, поскольку ни одна модель не была привязана.

Если вы полностью пропустите второй параметрНапример:

<%=Html.Textbox("Title")%>

Значение будет извлечено из значений сообщения (Request.Form).

...