asp.net-mvc – 在MVC 3中回发到控制器操作后,ViewModel集合属性
发布时间:2020-12-16 04:33:22 所属栏目:asp.Net 来源:网络整理
导读:我有我的视图模型: public class POReceiptViewModel{ public virtual int PONumber { get; set; } public virtual string VendorCode { get; set; } public virtual IListPOReceiptItemViewModel POReceiptItems { get; set; } public POReceiptViewModel(
我有我的视图模型:
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 core 3.0 中使用 swagger
- 将ASP.NET源代码与已编译的Web应用程序匹配
- asp.net – ValidateRequest = False但是在行动中它仍然是T
- asp.net-mvc – 实现多租户ASP.NET MVC应用程序的最快方法
- asp.net-mvc – 用于选择列表的ASP.NET MVC模型与ViewData
- asp.net – 在DotNetNuke中使用jQuery UI datepicker而不是
- asp.net – 为什么有#!在我的角度应用程序的网址中
- asp.net – Visual Studio发布/或构建解决方案ZIP
- asp.net-core – .NET Core 2中缺少TaskCache类
- asp.net-mvc – 为什么HttpContext.Current在asp.net mvc中
推荐文章
站长推荐
- asp.net-mvc – 使用和新Relic进行Azure部署
- asp.net-mvc – 如何将枚举传递给Html.RadioButt
- razor – MVC 4 ActionLink Dictionary htmlAttr
- asp.net – AJAX updatepanel给出错误
- asp.net-mvc – 如何获取ModelState.AddModel错误
- asp.net-mvc-4 – 集成测试和单元测试(WEB API m
- asp.net-mvc-4 – MVC 4 – EF模型w / Spaces
- 如何阻止ASP.Net发送默认字符集?
- asp.net-mvc – ASP.NET MVC中的Razor页面生命周
- asp.net-mvc – 从一个项目到另一个项目调用控制
热点阅读