문제

나는 담배를 피운 정말 이상한 문제에 직면하고 있습니다.

Get의 컨트롤러에서 올바르게 채워진 견해가 강하게 입력 된 상당히 간단한 시나리오가 있지만 양식을 컨트롤러에 게시하면 모든 올바른 값과 올바른 키 이름으로 가득합니다. 기본 모델 바인더는 내 모델 객체 중 하나를 올바르게 채우고 DMB는 올바른 대단을 생성하지만 속성을 채우지 않으며 모두 기본 상태에 있습니다.

이것은 이전에 작동했는데, 내가 생각할 수있는 유일한 변경 사항은 내가 사용자 정의 모델 바인더를 시도했다는 것입니다 (그런 다음 제거했습니다. 아직 사용하지 않도록 두 번 확인했습니다). 소품의.

이견있는 사람?

도움이 되었습니까?

해결책 2

알았어요. 이 모델은 MDOEL 바인더가이를 채우는 능력에 자연스럽게 영향을 미치는 방식으로 리팩토링되었습니다.

다른 팁

DefaultModelBinder가 본질적으로 모델에 바인딩되지 않는 매우 유사한 시나리오 - 바운드 모델 객체를 속성 중 하나와 동일한 이름으로 제공 할 경우 도착합니다.

모델

Public Property ArbitraryName1 As Integer
Public Property Answer As String
Public Property ArbitraryName2 As Boolean

보다

<p/> ... @Model.ArbitraryName1
<p/> Answer: @Html.TextBoxFor(Function(model) model.Answer)
<p/> ... @Html.CheckBoxFor(Function(model) model.ArbitraryName2)

제어 장치

<HttpPost()>
Function Index(answer As Model) As ActionResult
  ' answer is Nothing
End Function

(ASP.NET MVC 사용)

입력 파라의 이름은 객체의 속성 이름과 같을 필요가 없습니다. 모든 데이터는 이름 -> 값 배열로오고 기본 바인딩은 관계를 만들기 위해 이름을 사용합니다.

나는 두 개의 속성을 클래스 상단에서 더 아래로 옮겨서이 행동이 일어났다. 나는 왜 이것이 세 번째 속성의 바인딩이 작동하는 것을 막았는지 아직 해결할 수 없습니다 (그래서 이것은 '조심자'만큼 해결책이 아닙니다). 그러나 나는 변화를 여러 번 반복하고 바인딩이 시작될 때마다 반복했습니다. 작동하지 않기 위해 노력합니다. 또한이 변화를 한 후에는 때때로 바인딩이 다시 작동하기위한 솔루션을 '청소'해야한다는 것을 알았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top