asp.net-mvc – 在MVC 3中回发到控制器操作后,ViewModel集合属性丢失了值
发布时间:2020-05-25 08:59:42 所属栏目:asp.Net 来源:互联网
导读:我有我的视图模型: public class POReceiptViewModel{ public virtual int PONumber { get; set; } public virtual string VendorCode { get; set; } public virtual IListPOReceiptItemViewModel POReceipt
|
我有我的视图模型: public class POReceiptViewModel
{
public virtual int PONumber { get; set; }
public virtual string VendorCode { get; set; }
public virtual IList<POReceiptItemViewModel> POReceiptItems { get; set; }
public POReceiptViewModel()
{
POReceiptItems = new List<POReceiptItemViewModel>();
}
}
public class POReceiptItemViewModel
{
public virtual string ItemCode { get; set; }
public virtual string ItemDesription { get; set; }
public virtual decimal OrderedQuantity { get; set; }
public virtual decimal ReceivedQuantity { get; set; }
public virtual DateTime ReceivedDate { get; set; }
public POReceiptItemViewModel()
{
ReceivedDate = DateTime.Now;
}
}
然后我的控制器有两个动作,一个获得一个帖子: public ActionResult CreatePOReceipt(int poNumber)
{
PurchaSEOrder po = PurchasingService.GetPurchaSEOrder(poNumber);
POReceiptViewModel poReceiptViewModel = ModelBuilder.POToPOReceiptViewModel(po);
return View("CreatePOReceipt",poReceiptViewModel);
}
[HttpPost]
public ActionResult CreatePOReceipt(POReceiptViewModel poReceiptViewModel)
{
// Here the problem goes. The items in the poReceiptViewModel.POReceiptItems has lost. the count became zero.
return View("Index");
}
在我的视图中,我可以正确显示模型并使用@ Html.HiddenFor<>我可以按照自己的意愿坚持查看模型数据.但不在列表<>导航属性. @model POReceiptViewModel
@using (Html.BeginForm())
{
<fieldset>
<legend>Purchase Order</legend>
<label>For PO # :</label>
@Html.HiddenFor(m => m.PONumber)
@Html.DisplayTextFor(m => m.PONumber)
<label>Vendor Code :</label>
@Html.HiddenFor(m => m.VendorCode)
@Html.DisplayTextFor(m => m.VendorCode)
</fieldset>
<fieldset>
<legend>Received Items</legend>
<table class="tbl" id="tbl">
<thead>
<tr>
<th>Item Code</th><th>Item Description</th><th>OrderedQuantity</th><th>Received Quantity</th><th>Received Date</th>
</tr>
</thead>
<tbody>
@Html.HiddenFor(m => m.POReceiptItems) // I'm not really sure if this is valid
@if (Model.POReceiptItems.Count > 0)
{
foreach (var item in Model.POReceiptItems)
{
<tr>
<td>@Html.DisplayTextFor(i => item.ItemCode)</td>@Html.HiddenFor(i => item.ItemCode)
<td>@Html.DisplayTextFor(i => item.ItemDesription)</td>@Html.HiddenFor(i => item.ItemDesription)
<td>@Html.DisplayTextFor(i => item.OrderedQuantity)</td>@Html.HiddenFor(i => item.OrderedQuantity)
<td>@Html.TextBoxFor(i => item.ReceivedQuantity)</td>
<td>@Html.TextBoxFor(i => item.ReceivedDate)</td>
</tr>
}
}
</tbody>
</table>
</fieldset>
<input type="submit" name="Received" value="Received" />
}
问题: 提前致谢! 解决方法尝试@for (int i = 0; i < Model.POReceiptItems.Count(); i++)
{
<tr>
<td>@Html.DisplayTextFor(m => m.POReceiptItems[i].ItemCode)</td>@Html.HiddenFor(m => m.POReceiptItems[i].ItemCode)
<td>@Html.DisplayTextFor(m => m.POReceiptItems[i].ItemDesription)</td>@Html.HiddenFor(m => m.POReceiptItems.ItemDesription) <td>@Html.DisplayTextFor(m => m.POReceiptItems[i].OrderedQuantity)</td>@Html.HiddenFor(m => m.POReceiptItems[i].OrderedQuantity)
<td>@Html.TextBoxFor(m => m.POReceiptItems[i].ReceivedQuantity)</td>
<td>@Html.TextBoxFor(m => m.POReceiptItems[i].ReceivedDate)</td>
</tr>
}
另请阅读此blog post以了解模型绑定到列表的工作原理 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – View中的意外NullReferenceException
- asp.net-mvc – 为id而不是name设置HtmlFieldPrefix
- asp.net – 不明确的引用问题(Microsoft.AspNet.Identity和
- asp.net – 无法加载类型’system.data.entity.design.aspn
- asp.net-mvc – ASP.NET MVC 4覆盖发出的html名称和id
- asp.net – 检查IE浏览器 – .NET
- asp.net – 我应该花费我的努力实现knockoutjs或查看jQuery
- asp.net – MVC5认证中的“和主域之间的信任关系失败”
- asp.net-mvc – 405消息,Web Api不允许的方法
- asp.net-mvc-2 – 在MVC中实现自定义标识和IPrincipal
推荐文章
站长推荐
- 可能的Bug与ASP.NET MVC 3路由?
- vs2008中文版提供下载(包含中文msdn),包括vs200
- asp.net – System.Security.SecurityException?
- asp.net-mvc – 如何使WebAPI操作只能从我的应用
- ASP.NET MVC共享Web托管建议? (或者,好的Window
- ASP.NET TextBox LostFocus事件
- asp.net – 使用Visual Studio 2012发布到azure时
- asp.net-mvc – ASP.NET MVC快速启动 – 一站式教
- 用于属性的ASP.NET MVC编辑器模板
- asp.net-mvc – ModelState.IsValid或Model.IsVa
热点阅读
