asp.net-mvc C 使用ASP.Net MVC中的模型绑定器更新父/子记录
Nerd Dinner应用程序以允许通过将以下代码添加到DinnerForm.ascx来编辑子记录
<p>
<%int i = 0;
foreach (NerdDinner.Models.RSVP rsvp in this.Model.Dinne
|
我已经修改了 Nerd Dinner应用程序以允许通过将以下代码添加到DinnerForm.ascx来编辑子记录 <p> <%int i = 0; foreach (NerdDinner.Models.RSVP rsvp in this.Model.Dinner.RSVPs) { %> <%= Html.Hidden("Dinner.RSVPs[" + i + "].RsvpID",rsvp.RsvpID)%> <%= Html.Hidden("Dinner.RSVPs[" + i + "].DinnerID",rsvp.DinnerID)%> <%= Html.TextBox("Dinner.RSVPs[" + i + "].AttendeeName",rsvp.AttendeeName)%> <% i += 1; } %> </p> 它呈现这个: <p> <input id="Dinner_RSVPs[0]_RsvpID" name="Dinner.RSVPs[0].RsvpID" type="hidden" value="36" /> <input id="Dinner_RSVPs[0]_DinnerID" name="Dinner.RSVPs[0].DinnerID" type="hidden" value="63" /> <input id="Dinner_RSVPs[0]_AttendeeName" name="Dinner.RSVPs[0].AttendeeName" type="text" value="kp" /> <input id="Dinner_RSVPs[1]_RsvpID" name="Dinner.RSVPs[1].RsvpID" type="hidden" value="37" /> <input id="Dinner_RSVPs[1]_DinnerID" name="Dinner.RSVPs[1].DinnerID" type="hidden" value="63" /> <input id="Dinner_RSVPs[1]_AttendeeName" name="Dinner.RSVPs[1].AttendeeName" type="text" value="jim" /> </p>我没有修改DinnersControler的Post Edit Action方法.父母的晚餐照常更新,但它似乎是UpdateModel(晚餐);没有看到/更新子RSVP记录. 我已经尝试了一些渲染子记录的变体,以便模型绑定器可以看到集合,没有运气. 通过调用UpdateModel(Parent)一次更新父/子记录;可能与当前的模型粘合剂? 解决方法 我自己无法做到这一点.我知道您可以自动更新单个子元素,即Dinner.RSV.我从未见过更新子枚举的能力,这需要绑定才能知道哪个属性是ID并查找它(即Dinner.RSVP.Where(r => r.RSVP_ID == input_id)和然后更新那个).我不太了解自定义绑定做类似的事情. 但是,我所做的是做一个循环并指定rsvp和int作为前缀: 所以你也是: UpdateModel("Dinner",Dinner);更新父级然后: int i = 0; foreach (var r in Dinner.RSVPs) { UpdateModel(r,"Dinner.RSVPs[" + i++ + "]"); }不太干净,但对我来说效果很好.但是,构建验证可能需要更多的努力(您希望同时验证所有内容,并确保不会在第一个RSVP上跳回到视图时出现错误). 编辑:修复了代码以反映OP的解决方案,包括我的参数顺序中的错误.话虽如此,我使用RSVP.ID属性比运行整数更舒服.只要您知道Dinner.RSVP在POST上与GET相同(我在我的代码中对此有信心),那么使用RSVP.ID将起作用.如果RSVP与RSVP不同,那么只有那两个存在的RSVP才会更新.但是,使用sequential int可能会导致更新错误的对象. 希望有所帮助,詹姆士 (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- .NET WebApi jsonapi.org支持
- ASP.NET MVC全能路由
- asp.net-mvc-3 – ASP.net MVC – 模型绑定不包括类字段?
- asp.net mvc webapi 实用的接口加密方法示例
- asp.net-web-api – Web API / MVC 6中的安全JSON Web令牌
- asp.net-mvc – KendoUI网格显示总记录数
- asp.net – 多个域的集成Windows身份验证
- asp.net – 允许服务器/ usercontrol上的任何属性/属性
- asp.net-mvc-3 – Telerik MVC网格,在运行时从集合或字典中
- asp.net-mvc – 使用AWS .NET SDK进行SNS订阅确认
- asp.net-mvc – 有没有办法重命名RequestVerific
- ASP.NET Web应用程序本地化的最佳实践
- asp.net-mvc – Url.Action生成查询字符串,以任何
- asp.net-mvc – ASP.NET MVC中的Windows Live ID
- 用AJAX实现的无刷新的分页实现代码(asp.net)
- asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问
- asp.net-mvc – ASP.NET Web Api – 将对象发布到
- asp.net – 在渲染到位图之前缩放WPF内容
- ASP.Net中的图形(c#)
- asp.net-mvc-3 C 如何从ASP.NET MVC#输出中
- asp.net-mvc C ASP.NET MVC中的WebApi [Fro
- asp.net C 适用于多个用户的EWS通知中心
- asp.net C MVC4 C ContextDependentView C
- asp.net-mvc C 使用AD的ASP.NET MVC表单Aut
- ASP.Net C AJAX UpdatePanel中的Javascript
- asp.net-core C 如何使用ASP.NET注册OData
- asp.net-mvc C 已经使用相同的参数类型定义
- asp.net-mvc C MVC应用程序中的随机数生成
- asp.net-mvc C 未在ELMAH中记录的错误
