양식 제출을 통해 중첩 된 데이터를 ActionResult 매개 변수에 게시하려면 어떻게해야합니까? 나는 this question에 대한 답변과 비슷한 해결책을 구현하려고 시도했지만 많은 행운이 없다. 다음과 같이MVC에 게시 된 복잡한 구조를 잡는 방법
문제의 형태의 단면 구조는 다음과 같습니다 모델에서
Form Submission Event: (BaseController:57-ish):
{
...
"Prices[1].Price": "9.9900",
"Prices[1].Size2Price": "0.0000",
"Prices[1].Size3Price": "0.0000",
"Prices[2].Price": "5.5800",
"Prices[2].Size2Price": "0.0000",
"Prices[2].Size3Price": "0.0000",
"Prices[3].Price": "0.0000",
"Prices[3].Size2Price": "0.0000",
"Prices[3].Size3Price": "0.0000",
...
}
:
<form method="post" action="/Product/Edit" class="tabs">
<input name="Prices[1].Price" id="Prices_1__Price" value="9.99" type="text">
<input name="Prices[1].Size2Price" id="Prices_1__Size2Price" value="0.00" type="text">
<input name="Prices[1].Size3Price" id="Prices_1__Size3Price" value="0.00" type="text">
<input name="Prices[2].Price" id="Prices_2__Price" value="5.00" type="text">
<input name="Prices[2].Size2Price" id="Prices_2__Size2Price" value="0.00" type="text">
<input name="Prices[2].Size3Price" id="Prices_2__Size3Price" value="0.00" type="text">
<input name="Prices[3].Price" id="Prices_3__Price" value="0.00" type="text">
<input name="Prices[3].Size2Price" id="Prices_3__Size2Price" value="0.00" type="text">
<input name="Prices[3].Size3Price" id="Prices_3__Size3Price" value="0.00" type="text">
<button type="submit">submit</button>
</form>
이는 게시 된 데이터가 예상대로 표시로, 로그 벌금을 통해오고있다 , 나는 가격의 수집을 잡으려고 변이를 시도하고있다, 현재의 시도는 다음과 같다 :
나는 "EditedProductEntry"데이터 구조 수신 "편집"ActionResult이 컨트롤러 측면에서: 나는 "포스트"매개 변수의 구조는 "가격을 받아 가지고 시도에 대해 조롱했습니다
[HttpPost]
[Route("Edit", Name = "Product_Edit")]
public ActionResult Edit(EditedProductEntry post)
{
...
}
에게 "컬렉션하지만 이것은 나를 곤란하게 만든다. 데이터의 나머지 부분은 &이 "EditedProductEntry"개체를 채우고 있지만 나머지는 null입니다.
개체 [], EditedProductEntry [], ICollection, IEnumerable을 잡으려고 시도했습니다. &도 이러한 매개 변수를 "편집"작업에 추가 매개 변수로 지정하려고 시도했지만 지금까지 아무런 행운을 얻지 못했습니다.
다른 아이디어가 있습니까?
1 대신 인덱스 0을 시작하거나 모델 바인딩 컬렉션에 대해 비 순차 인덱스 바인딩을 사용하십시오. - http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx /. 두 번째 접근 방식을 권장합니다. – Developer
DataContract 및 DataMember 특성은 필요하지 않습니다. (아마도 코드에 잡음을 추가하는 데 사용되어야합니다.) –
입력을 수동으로 생성하는 것은 미친 일입니다. 기존 항목 인 경우 [이 답변] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)을 참조하십시오. 항목을 동적으로 추가/제거하는 경우 thew보기, 참조 [이 답변] (http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308) –