ASP.NET MVC 3 ModelState - PullRequest
       20

ASP.NET MVC 3 ModelState

1 голос
/ 31 января 2012

ОК, у меня проблема, когда ошибки ModelState не отображаются на правильные свойства.

Дайте мне посмотреть, смогу ли я это объяснить.

У меня ViewModel похож на:

public class MyViewModel
{
    public string Prop1 {get;set;}
    public string Prop2 {get;set;}
    ....
}

На мой взгляд, у меня есть модель, у которой есть коллекция этого типа, для которой у меня есть EditorTemplate.Таким образом, он генерирует MyViewModels[0].Prop1, MyViewModels[1].Prop1 и т. Д.

Проблема заключается в том, что я устанавливаю ошибку на ModelState в моем слое обслуживания через интерфейс, который я сделал под названием IValidationDictionary, который имеет оболочкуПрименительно к состоянию модели он не прикрепляет ошибку к правильной строке в представлении, а к концу модели как Prop1.

EDIT

Вот ModelStateWrapper (VB -Извините!)

Public Class ModelStateWrapper
    Implements IValidationDictionary

#Region "Private Members/Properties"

    Private modelState As ModelStateDictionary

    Public ReadOnly Property IsValid As Boolean Implements IValidationDictionary.IsValid
        Get
            Return modelState.IsValid
        End Get
    End Property

#End Region

#Region "Constructor(s)"

    Public Sub New(modelState As ModelStateDictionary)
        Me.modelState = modelState

    End Sub

#End Region

#Region "Methods"

    Public Sub AddError(key As String, message As String) Implements IValidationDictionary.AddError
        modelState.AddModelError(key, message)

    End Sub

#End Region

End Class

1 Ответ

0 голосов
/ 01 февраля 2012

Звучит так, как будто вы можете использовать Dependency Injection и вводить ModelStateDictionary в ваш класс ModelStateWrapper, который снова вводится в ваш уровень обслуживания ?

Я могу только догадываться, все, что вводится, не использует свойство ModelState Controller класса (ModelStateDictionary) вашего текущего HTTP-запроса.

Вы случайно не инициализировали новый экземпляр из ModelStateDictionary и не передали его в ваш ModelStateWrapper? Если вы используете Dependency Injection , пожалуйста, покажите мне свою конфигурацию Injection, чтобы я мог дать вам лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...