데이터 테이블이 있습니다. 각 행에는 스토어에 대한 세부 정보 (임의로 고유 한 ID를 가질 수 있음) 및 스토어 번호 (고유하고 비 순차적) 및 기타 정보가 표시됩니다.데이터를 컨트롤러에 전달
상점 번호를 선택할 때 상점의 세부 사항을 표시하려고합니다.
public class StoreViewModel
{
public FormatViewModel Formats { get; set; }
public List<StoreDetailsViewModel> StoreData { get; set; }
}
형식는 MvcCheckBoxList의 구현을위한 데이터를 포함하고 체크 박스가 FormMethod.GET 통해 업데이트 할 때 StoreData를 업데이트합니다.
스토어 모델 : 상점의
public class StoreDetailsViewModel
{
public int StoreID { get; set; }
public int StoreNo { get; set; }
public string StoreFormat { get; set; }
public string Version { get; set; }
public int CellNo { get; set; }
[ForeignKey("CellNo")]
public virtual Cell Cell { get; set; }
}
색인 페이지가 표시 테이블 :
상점의 목록에서 선택한 행에 대한을 StoreID을 통과 내가 동작하지 않습니다@using (Html.BeginForm("Details", "Store", FormMethod.Post))
{
<table class="table table-condensed table-bordered table-hover table-striped small">
<tr>
@*<th class="text-center"></th>*@
<th class="text-center">No.</th>
<th class="text-center">Format</th>
<th class="text-center">CBO Version</th>
<th class="text-center">Cell</th>
<th class="text-center"></th>
</tr>
@foreach (var item in Model.StoreData)
{
<tr>
<td class="text-center">
@Html.Hidden("List_StoreIDs", @item.StoreID)
@Html.Hidden("id", @item.StoreID)
@item.StoreNo
</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.StoreFormat)</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.Version)</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.CellNo)</td>
<td>
<input type="submit" name="submit" [email protected] />
</td>
</tr>
}
</table>
}
(ActionLink는 쉽게 작동하지만 List_StoreID를 다시 전달해야합니다.)
나는 @ Html.Hidden ("id")가 작동 할 것을 기대했으나, 은 항상 1입니다.
컨트롤러
public ActionResult Details(int? id, int[] List_StoreIDs, string submit, string book)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Store store = db.Stores.Find(id);
if (store == null)
{
return HttpNotFound();
}
... do something
}
어떤 제안 제발?
감사 크레이그
List_StoreID가 필요한 이유는 모델에서 렌더링 할 때 Item.StoreID와 같은 것으로 보입니다. 모델을 검색하기 위해 StoreID 만 사용한다면 컨트롤러가 요구하는 것이 전부입니까? – Paddy
@Paddy 인덱스 뷰에 렌더링 된 StoreID 목록을 세부 컨트롤러로 전달해야합니다. –
왜 제출 버튼입니까? 이 양식은 여러 개의 ID가있는 전체 양식을 제출합니다 (이것이 항상 1 인 이유입니다). 액션 링크가 최선의 방법 일 수 있습니다. – Paddy