컨트롤러 체크인 모델의 목록을 가져옵니다 true 및 false 값이 검사 된 행에 적용됩니다. 나는 그것이 FormCollection
때문에 인 것을 읽었다. 질문 : 대신 GetChecked
을 매개 변수로 사용하여 IEnumerable<Models.Entry>
을 사용할 수 있습니까? 내가 그것을 시도했을 때 그것은 null 값이되었다.컨트롤러
컨트롤러
답변
당신은 변경해야한다 :
등을 CheckBoxFor, EditorFor를 사용하여 목록 또는 배열에서 컨트롤을 렌더링 을 사용하지 마십시오
foreach
- 대신 항상for
-loop을 사용하고 컬렉션에 색인을 적용하십시오. 색인을 생성하면<form>
의 번호가 지정된 항목이 만들어지며 더 이상 서로 충돌하지 않으므로 번호가 매겨진 항목은 제출 된 값 목록을 처리하는 데 필요한 항목과 정확하게 일치합니다. 간단한 예를 보려면이 대답을 참조하십시오.FormCollection
을 사용하지 말고 대신 ViewModel 클래스를 사용하십시오. https://stackoverflow.com/a/15375949/1220550FormCollection
을 사용하면 Databinding/ModelState
/ValidationSummary
을 포기하고 함께 ASP.NET MVC의 뛰어난 기능을 사용할 수 있습니다. 이 모든 것을 여기에서 설명하기에는 너무 많지만 정확히 여기서는 great link입니다.데이터 바인딩 (이전 참조)뿐만 아니라 일관성과 사용 용이성을 위해 완전히 정의 된 ViewModel 클래스를 사용하는 것이 가장 좋습니다. 배열이
IEnumerable<X>
인 경우는@model
이 가장 혼란스럽고 오류가 발생할 수 있습니다. 갑자기int
도 전달하려면 어떻게해야합니까?IEnumerable<X>[]
으로 불가능합니다. 아직 ViewModel이있는 케이크 조각입니다. 그냥 클래스에 추가하십시오.
나는 그 모든 것을 지금했다. 그리고 그것은 잘 작동한다, 대단히 =). – mdc
IEnumerable 인터페이스를 모델 바인더와 바인딩해야하므로 결과가 null입니다. 공급자는 모델 바인딩 공급자를 만들려고합니다. 공급자가 속성 유형을보고 해당 속성에 대한 사용자 지정 모델 바인더를 만들 수 있기 때문입니다.
이 링크를 봐 또한 몇 가지가 있습니다 http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx
- 1. 컨트롤러 내부의 각도 컨트롤러
- 2. 컨트롤러 내 컨트롤러 호출
- 3. 레일 컨트롤러 테스트 컨트롤러
- 4. IPhone 복수 컨트롤러 컨트롤러
- 5. 각도 컨트롤러 외부 컨트롤러
- 6. 컨트롤러
- 7. 컨트롤러
- 8. 컨트롤러
- 9. 컨트롤러
- 10. 컨트롤러
- 11. 컨트롤러
- 12. 컨트롤러
- 13. 컨트롤러
- 14. 컨트롤러
- 15. 컨트롤러
- 16. 컨트롤러
- 17. 컨트롤러
- 18. 컨트롤러
- 19. 컨트롤러
- 20. 컨트롤러
- 21. 컨트롤러
- 22. 컨트롤러
- 23. 컨트롤러
- 24. 컨트롤러
- 25. 컨트롤러
- 26. 컨트롤러
- 27. 컨트롤러
- 28. 컨트롤러
- 29. 컨트롤러
- 30. 컨트롤러, 하위 컨트롤러 및보기의 구조
@model 문 다음에 []이 있습니까? 전에 거기서 사용 된 것을 본 적이 없습니다. – VisualBean