ASP.NET MVC 페이지에 상당히 복잡한 형식이 있습니다. 이것은 다음과 같이 작동합니다 ...ASP.NET MVC 다중 순차 게시 - 데이터 채우기가 없음
기본적으로로드 (HTTP 게시 없음)에는 모델에 바인딩 된 두 개의 선택 상자와 제출 버튼이 있습니다.
제출시 (HTTP 게시) 선택 상자의 값을 사용하여 DB에서 일부 데이터를 가져옵니다. 그 데이터는 게시 된 모델 인스턴스에 추가되고 인스턴스는 다른 View (myModelInstance) 호출을 실행하는 데 사용됩니다.
이 시점에서 상황이 좋게 보입니다. 내 선택 상자는 선택된 값을 유지하고 DB 데이터를 기반으로 한 새 요소가 표시됩니다.
데이터를 변경했는지 여부에 관계없이 다른 게시물을 지금 작성하면 선택 상자에서 선택한 원래 값은 내 컨트롤러의 Action 메서드 내에서 null이지만 DB 데이터 텍스트 상자의 값은 아닙니다.
정말 다음 예에서와 같이 ...를 IEnumerable 내에있는 내 모델의 일부를 편집 할 수있는 면도기 내의 인덱스 표기법을 사용하고 여기에 특별한 일을하고있는 유일한 것은 ...
@for (int i = 0; i < ViewBag.SomeArbitraryNumber; i++)
{
<input type="text" name="myModel.MyEnumerable[@i].MyValue"
value="@(Model.MyEnumerable[i].MyValue)" size="2" />
}
이 색인 표기법은 원래 선택 상자 값이 게시 된 후에 만 사용됩니다.
업데이트 : 여기에서 주요 기여자는 특수 색인 표기법 인 것으로 보입니다. 만약 내가 그것을 제거, 잘 작동합니다. 또한 두 개의 선택 상자와 일치시키기 위해 추가 숨겨진 필드를 포함하고 해당 필드에 대해 색인 표기법을 사용하면 두 번째 게시물이 작동합니다.
그래, 표준보기 및 HttpPost보기에서 채우고 있습니다. 나는 또한 근원에서 가치가다는 것을 볼 수있다. 그들은 단지 두 번째 지위의 모델에 수화되는 것 같지 않습니다. – ctorx