У меня есть представление, состоящее из двух частичных представлений и того, что уже есть на странице. Я хочу, чтобы у каждого представления была сводка проверки. Все работает нормально, за исключением того, что при возникновении ошибки в одном из частичных сообщений сообщение отображается в каждой сводке проверки, поэтому оно появляется на странице 3 раза. Я хотел бы решить это.
Я немного посмотрел в Интернете и увидел, что есть способ сделать это следующим образом:
var SecurityQuestionsErrors = ViewData.ModelState.Where(ms => ms.Key == "SecurityQuestions");
if (SecurityQuestionsErrors.Count()>0)
{
@Html.ValidationSummary("", new { @class = "" })
}
Поэтому я хотел бы иметь этот код в каждом частичном представлении, чтобы увидеть, связана ли ошибка именно с этим.
Когда ошибка исходит от контроллера (я могу добавить ключ самостоятельно, он отлично работает):
catch (FaultException<IncorrectQuestionFault>)
{
// question is incorect
ModelState.AddModelError("SecurityQuestions", Resources.errors.incorrectQuestion);
}
Но когда ошибка исходит от ViewModel, он не добавляет ключ, и я облажался...
[Required(ErrorMessageResourceName = "IsRequired", ErrorMessageResourceType = typeof(Resources.errors))]
[StringLength(40, MinimumLength = 7, ErrorMessageResourceName = "NotLongEnough", ErrorMessageResourceType = typeof(Resources.errors))]
[Display(Order = 0, Name = "question", ResourceType = typeof(Resources.errors))]
public string question{ get; set; }
Итак, мой вопрос: правильно ли я делаю это? Есть ли способ добавить ключ к ошибкам, исходящим от ViewModel? Должен ли я сделать это по-другому?
Вся помощь приветствуется: D