2012-01-30 5 views
1

그래, ModelState 오류가 올바른 속성에 매핑되지 않는 문제가 있습니다.ASP.NET MVC 3 ModelState

내가 설명 할 수 있는지 알아 보도록하겠습니다.

가 나는 뷰 모델과 같이 있습니다 : 내보기에서

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

, 난에 대한 EditorTemplate이이 유형의 컬렉션이 모델을 가지고있다. 그래서 MyViewModels[0].Prop1, MyViewModels[1].Prop1, 생성 등

내가 모델 상태 래퍼를 가지고 IValidationDictionary라고 만든 인터페이스를 통해 내 서비스 계층에서 ModelState에 오류를 설정할 때 문제가 오류를 첨부하지 않습니다이다 뷰의 올바른 행으로, 모델의 끝 부분은 Prop1으로 변경하십시오. 여기에 편집

는 ModelStateWrapper (VB! - 죄송합니다) 당신이 의존성 삽입 (Dependency Injection)를 사용하고 다시 당신의 ModelStateWrapper 클래스에 ModelStateDictionary를 주입 할 수 수처럼

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 

+0

모델 상태를 감싸고있는 코드를 보지 않고도 누군가가 제대로 작동하지 않는 이유에 대해 사람들이 어떻게 대답 할 수있을 것이라고 기대합니까? – Dismissile

답변

0

이 소리 서비스 레이어에 삽입?

나는 만을 주입지고 어떤이 현재 HTTP 요청의 Controller class ModelState property (ModelStateDictionary)를 사용하지 추측 할 수 있습니다.

새 인스턴스ModelStateDictionary으로 초기화하고 ModelStateWrapper에 전달 하시겠습니까? 의존성 주입을 사용하는 경우, 더 나은 대답을 줄 수 있도록 주입 구성을 보여주십시오.