asp.net-mvc – ASP.Net MVC4将“创建视图”绑定到包含List的模
你好,在互联网上,我有一个有趣的难题:
是否可以绑定视图以创建对象,如果该对象包含纯粹使用MVC视图/部分视图的其他对象的列表? 男人,出来的都很复杂……让我给你一个快速的代码示例我的意思: Models: public class ComplexObject { public string title { get; set; } public List<ContainedObject> contents { get; set; } } public class ContainedObject { public string name { get; set; } public string data { get; set; } } 好又简单吧?好的,所以用于创建其中一个的强类型视图对于“title”属性来说非常简单: something like: @Html.TextBoxFor(x => x.title) 但我无法找到一种使用MVC绑定“ContainedObjects”列表的好方法.我得到的最接近的是使用“List”脚手架模板创建一个强类型的IEnumerable局部视图,并将其包含在页面上. 在不添加样式等的情况下,该局部视图的默认外观为: @model IEnumerable<MVCComplexObjects.Models.ContainedObject> <p> @Html.ActionLink("Create New","Create") </p> <table> <tr> <th> @Html.DisplayNameFor(model => model.name) </th> <th> @Html.DisplayNameFor(model => model.data) </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.name) </td> <td> @Html.DisplayFor(modelItem => item.data) </td> <td> @Html.ActionLink("Edit","Edit",new { /* id=item.PrimaryKey */ }) | @Html.ActionLink("Details","Details",new { /* id=item.PrimaryKey */ }) | @Html.ActionLink("Delete","Delete",new { /* id=item.PrimaryKey */ }) </td> </tr> } </table> 但坦率地说,我无法弄清楚如何将其包含在创建新的ComplexObject中.换句话说,我可以通过绑定显示已存在的ContainedObjects列表,如下所示: 但我想我想要的是: @Html.PartialFor("PartialCreate",x => x.contents) 我应该注意到,使用Javascript编写代码并没有太多麻烦(我将在下面包含代码),但我真的想知道是否有一种纯粹使用MVC的方法.我是最近从WebForms转换的(我几乎只是用AJAX调用替换了所有的回发),这种事情在我工作的项目中出现了很多. 无论如何,这是我目前的做法: Html – Name: <input type="text" id="enterName" /> Data: <input type="text" id="enterData" /> <a id="addItem">Add Item</a> <ul id="addedItems"> </ul> <a id="saveAll">Save Complex Object</a> Javascript – <script> var contents = []; $(document).ready(function () { $('#addItem').click(function () { var newItem = { name: $('#enterName').val(),data: $('#enterData').val() }; contents.push(newItem); $('#addedItems').html(''); for (var i = 0; i < contents.length; i++) { $('#addedItems').append( "<li>" + contents[i].name + "," + contents[i].data + "</li>" ); } }); $('#saveAll').click(function () { var toPost = { title: "someTitle",contents: contents }; $.ajax({ url: '/Home/SaveNew',type: 'POST',data: JSON.stringify(toPost),dataType: 'json',contentType: 'application/json; charset=utf-8',success: function (data,textStatus,jqXHR) { alert("win"); },error: function (objAJAXRequest,strError) { alert("fail"); } }); }); }); </script> 这不是一个糟糕的解决方案或任何东西,我只是不想每次我想保存一个新对象时都要实现Javascript调用,但在其他地方使用标准的Razr代码.我希望全面合理地保持一致. 有没有其他人遇到这个问题并找到了解决方案? 解决方法
我最近发现自己需要完成相同的任务,就像你一样,不想添加一堆javascript.我正在使用MVC4,并且我可以说,似乎没有一种开箱即用的方法将模型的可枚举属性绑定到视图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何检测ASP.NET应用程序中的SqlServer连接泄漏?
- ASP.NET MVC捆绑缓存. (检测css文件更改)(内部行为)
- asp.net-mvc-3 – 您可以编辑CSHTML而无需再次构建
- asp.net-mvc – N2 for MVC – 如何让Zones工作?
- asp.net-mvc-2 – 在发布网站后无法在asp.net mvc2中加载类
- 在ASP.NET MVC中公开资源字符串到JavaScript文件的最佳方式
- asp.net代码中修改web.config节点的具体方法
- asp.net-core – 哪些所有类型的HTTP头都在ASP.NET 5中?
- asp.net – 在ASCX自定义控件中放置CSS规则的位置?
- asp.net – 迁移匿名配置文件的最佳方式
- asp.net – 在visual studio中的同一解决方案中运
- asp.net-mvc – 我有15分钟向我的同事介绍ASP.NE
- asp.net – 当BackColor透明时,MS图表中的文字变
- asp.net-mvc-3 – Razor语法中的ValidateRequest
- asp.net全局资源错误’找不到具有键”的资源对象
- asp.net-core – 如何在ASP.NET Core中设置cooki
- 在按钮ASP.NET c#上禁用回发
- asp.net – Webforms与MVC.一旦你开始使用MVC ..
- asp.net-mvc – 好的WiX编辑器
- asp.net-mvc-3 – 即使密码相同,比较验证器总是会