asp.net-mvc – 如何从MVC 3中的View中将List或Collection返回给
有人请帮我从我的观点正确返回此列表.我不明白为什么我为fieldModelList返回null我尝试传递给控制器??…
这是我的观点: @model List<Regions.SOA.UI.CopyBookSchemaCreator.Models.FieldModel> <script type="text/javascript" src="~/Scripts/jquery-ui-1.8.11.min.js"></script> @using (Html.BeginForm("GetResponse","TestMethods",FormMethod.Post)) { <table id="tblMethods"> <tr> <th> Property Name </th> <th> Request </th> </tr> @foreach (FieldModel fieldModel in Model) { <tr> <td> @Html.DisplayFor(m => fieldModel.PropertyName) </td> <td> @Html.TextBoxFor(m => fieldModel.PropertyValue) </td> </tr> } </table> <div> <input type="submit"/> </div> 这是我的控制器: [HttpPost] public ActionResult GetResponse(List<FieldModel> fieldModelList) { return GetResponse(fieldModelList); } 我正在使用HttpPost方法但是如果我在其中放置一个断点,我就会立即返回null为fieldModelList,我希望这将是我在视图中输入到texbox中的值的列表. model FieldModel … 我认为我的逻辑与我的语法或者我的语法有些不一致,但基本上我想要做的是返回一个类型为FieldModel的列表,每个对应的PropertyName和PropertyValue到控制器.我注意到我没有在视图中的BeginForm语句中传递任何类型的id参数.我需要一个吗? 以防万一,这是我的FieldModel模型类: namespace Regions.SOA.UI.CopyBookSchemaCreator.Models { public class FieldModel { [Display(Name = "Property")] public string PropertyName { get; set; } [Display(Name = "Value")] public string PropertyValue { get; set; } } } 解决方法
Phil Haack
wrote an article前段时间解释了如何绑定集合(ICollection)来查看模型.它详细介绍了如何创建编辑器模板,您当然也可以这样做.
基本上,您需要使用索引为HTML元素的名称属性添加前缀. <input type="text" name="[0].PropertyName" value="Curious George" /> <input type="text" name="[0].PropertyValue" value="H.A. Rey" /> <input type="text" name="[1].PropertyName" value="Ender's Game" /> <input type="text" name="[1].PropertyValue" value="Orson Scott Card" /> 然后,您的控制器可以绑定FieldModel的集合 [HttpPost] public ActionResult GetResponse(List<FieldModel> fieldModelList) { return GetResponse(fieldModelList); } 我不是100%确定以下将正确命名属性(我建议使用编辑器模板)但您可以轻松使用htmlAttributes参数并使用索引为其命名. @for(int i = 0;i < Model.Count;i++) { <tr> <td> @Html.DisplayFor(m => m[i].PropertyName) </td> <td> @Html.TextBoxFor(m => m[i].PropertyValue) </td> </tr> } 编辑模板 如果您希望添加编辑器模板,请将名为FieldModel.ascx的部分视图添加到强类型为FieldModel的/ Views / Shared @model Regions.SOA.UI.CopyBookSchemaCreator.Models.FieldModel @Html.TextBoxFor(m => m.PropertyName) @* This might be a label? *@ @Html.TextBoxFor(m => m.PropertyValue) 然后,负责呈现集合的视图部分将如下所示: @for (int i = 0; i < Model.Count; i++) { @Html.EditorFor(m => m[i]); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅仅是小数
- 如何比较vbscript / ASP中的两个日期?
- ASP.NET MVC,GridViews,Calendars等的UI控件
- asp.net-mvc – 使旧会话Cookie无效 – ASP.Net标识
- 获取ASP.Net 2.0 Repeater控件中的当前索引
- asp.net-mvc – MvcMailer SendAsync阻止ASP.NET MVC请求吗
- asp.net – VS.NET 2015项目不会构建
- asp.net – 为VS2010和TFS中的团队管理web.config
- asp.net – 如何正确过滤数据表(datatable.select)
- asp.net – ASP菜单没有显示
- asp.net – 实体框架“等待操作超时”就简单的De
- 如果ASP.NET破坏其ID,我如何从javascript访问DIV
- asp.net – sitecore模板标准值布局不更新所有项
- asp.net-mvc – 在asp.net mvc控制器中使用构造函
- asp.net文本框 – 客户端textChanged事件不会触发
- asp.net-mvc – 如何在保留控制器名称的同时分解
- .net – 如果选中复选框,如何制作文本框
- Kendo UI ASP.NET MVC使用教学视频集锦(高清在线
- asp.net-mvc – 当MVC路由触发时,在控制器中获取
- asp.net – 自我跟踪实体vs POCO实体