내가 작업하고있는 프로젝트에서 세션에 저장된 객체가있는 List<Item>
목록이 있습니다. 컨트롤러에서세션에서 객체 배열을 처리하는 방법
Session.Add("SessionName", List);
내가이 세션
var arrayList = (List<Item>)Session["SessionName"];
var arrayListItems= new List<CartItem>();
foreach (var item in arrayList)
{
var listItem = new Item
{
Amount = item.Amount,
Variant= item.variant,
Id = item.Id
};
arrayListItems.Add(listItem);
}
var viewModel = new DetailViewModel
{
itemList = arrayListItems
}
에서 내보기 I 루프의 데이터와 뷰 모델을 구축는 항목의 목록을 구유하고 제거 할 수 있도록 그들 모두를위한 양식을 만들 목. 제출 버튼에서 포스트 아이템 handeld된다
<table>
<%foreach (var Item in Model.itemList) { %>
<% using (Html.BeginForm()) { %>
<tr>
<td><%=Html.Hidden(Settings.Prefix + ".VariantId", Item .Variant.Id)%>
<td> <%=Html.TextBox(Settings.Prefix + ".Amount", Item.Amount)%></td>
<td> <%=Html.Encode(Item.Amount)%> </td>
<td> <input type="submit" value="Remove" /> </td>
</tr>
<% } %>
<% } %>
</table>
배열로부터 제거되고 (이하 항목 1에 함께 itemList에) 정확히 같은 뷰 모델을 다시 배치한다. 게시물이 처리되고 뷰가 값 년대 html.Hidden 및 Html.Textbox의를 다시로드하면
return View("view.ascx", viewModel);
는 값의 제거 된 항목이다. html.Encode의 값이 올바른 값입니다. 페이지를 다시로드하면 올바른 값이 필드에 나타납니다. 두 번 나는 정확히 같은 방식으로 viewModel을 빌드합니다.
이 오류의 원인 또는 해결 방법을 찾을 수 없습니다. 나는 어떤 조언을 위해 사전에이 문제를
고맙습니다를 해결하고 다시 동일한 URL에 게시되기 때문에이 문제가 발생