Большинство моих методов действий возвращают PartialViews в случае успеха и RedirectToAction в случае неудачи. Для этого я хотел бы скопировать ошибки состояния модели в TempData, чтобы я мог отображать их пользователю. Я прочитал здесь несколько вопросов по SO и некоторым внешним ссылкам, но ни один из них не помог мне ... Я украшаю ActionMethod атрибутом ModelStateToTempData
из MvcContrib, а затем отображаю его в представлении следующим образом: (это всего лишь прототип )
@if (TempData.Count > 0)
{
foreach (var obj in TempData)
{
var errors = ((ModelStateDictionary)obj.Value).Values;
foreach (var error in errors)
{
<div style="position:absolute; background:Black; color:White; top:250px; left:550px;">
<span style="margin-bottom:5px; display:block; height:25px;">@error.Value</span>
</div>
}
}
}
Вместо того, чтобы отображать саму ошибку, я продолжаю получать System.Web.Mvc.ValueProviderResult
. Я знаю, что это неправильно, и в конечном итоге я хотел бы отфильтровать ошибки состояния модели в словарь внутри TempData, но пока я просто хочу, чтобы строка ошибки отображалась в представлении.
P.S: Я пробовал делать это вручную без атрибута MvcContrib, и получил тот же результат. Но я предпочитаю использовать свой собственный код, чтобы иметь больший контроль над всей проблемой.
Какие-либо предложения?