Asp.Net Mvc - частичное отображение - управление ошибками - PullRequest
2 голосов
/ 20 января 2010

Я получил вызов страницы aspx ListArticles со следующим кодом:

<% Html.RenderPartial("Create", new Models.Article()); %>

Создать - частичное представление (Create.ascx).

В моем контроллере я получил что-то вроде этого:

if (!ModelState.IsValid) { 
     return View();
}

Таким образом, проблема в том, что представление, генерируемое return View();, не отображает хорошее представление.Он должен отображать представление ListArticles при выделении ошибок в частичном представлении Create, но отображает только представление Create.ascx.

Есть ли способ справиться с этим?

Ответы [ 3 ]

1 голос
/ 20 января 2010

Я предлагаю для этой ситуации, что вы встраиваете форму в свой View, в которой нужно публиковать и показывать ошибки, которые вы используете Ajax.BeginForm вместо частичных представлений. Частичные виды больше подходят для показа сценариев.

0 голосов
/ 20 января 2010

У вас может быть имя действия «Создать», поэтому оно отображается только Create.ascx view. Попробуйте поставить следующий код вместо

if (!ModelState.IsValid) { 
     return View("ListArticles");
}

Вы должны иметь Html.ValidationMessage () в вашем Create.ascx, чтобы увидеть ошибки проверки

0 голосов
/ 20 января 2010

Вы уверены, что предоставили весь код?

в вашем контроллере вы возвращаете представление, но не передаёте ему модель.

так что вам нужен Return View (Статьи) или что-то в этом роде. В случае ошибки вам все равно нужно вернуть коллекцию или модель, которые вы использовали для визуализации представления.

...