문제

ASP.NET MVC 응용 프로그램이 있습니다. 특정 시점에서 모델을 업데이트하는 데 사용하려는 Controller 메서드에서 FormCollection을 얻습니다. 컬렉션에서 모든 값이 해당 모델의 속성은 아니며 업데이트 할 속성은 목록의 항목이며 해당 목록도 다른 목록의 항목입니다. 다음과 같은 것 (이것이 분명하길 바랍니다) : 라코 디스

컨트롤러에서 시도했습니다 : 라코 디스

문제는 이것이 작동하지 않는다는 것이며 반사가 작동하지 않는다는 사실과 관련이 있다고 가정합니다. 검색을하다가 이 도움말 . 따라서 접두사 매개 변수를 사용하면 문제가 해결된다는 것을 이해합니다. 그러나 내 경우에는 속성이 목록의 항목으로 모델에서 "더 깊은"위치에 있기 때문에 그렇지 않습니다.

이 문제를 해결할 수있는 사람이 있습니까?

업데이트 :

속성에 대한 EditorTemplate은 다음과 같습니다. 라코 디스

이 템플릿의 이름은 다음과 같습니다. 라코 디스

이 코드로 충분합니까 아니면 아직 누락 된 것이 있습니까?

업데이트 2 :

좋아, 모든 하위 속성에서 매개 변수없는 생성자를 정의했고 이제 다음을 호출합니다. 라코 디스

이것은 모델을 업데이트하지만 MaterialRequirements의 모든 것이 다시 인스턴스화됩니다 ... : S

도움이 되었습니까?

해결책

UpdateModel은 "Deep properties"에서 잘 작동합니다.
문제는 아마도 수집 한 데이터가 속성 이름과 같지 않다는 것입니다.
페이지에서 얻은 값을 보려면 3 곳을 확인하세요.

  1. 양식 값.

  2. 경로 데이터

  3. 검색어 문자열

    정확한 순서

    속성 이름 을 모델링 할 때 일치 해야합니다. <시간>

    업데이트 :
    속성 이름에 키를 일치시키는 방법은 무엇입니까?
    입력 ID는 얻을 수있는 키가되고, 속성 이름과 일치하도록 ID를 변경하거나, HtmlTextBoxFor 도우미 : 문서 :

다른 팁

평탄화 된 ViewModel을 만든 다음이를 사용하여보기를 채운 다음 나중에 실제 모델과 동기화해야합니다.

모델과 뷰를 보여줄 수 있습니까? htmlhelper를 사용하지 않는 경우 모델 바인딩이 모델과 작동하도록하려면 명명 규칙을 잘 이해해야합니다.첫 번째는 모델과 뷰를 보여주는 것입니다.

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