asp.net-mvc – 使用带有IEnumerable的Html.EditorFor
我有一个自定义类:
public class Person { public String Name { get; set; } public Int32 Age { get; set; } public List<String> FavoriteFoods { get; set; } public Person() { this.FavoriteFoods = new List<String>(); this.FavoriteFoods.Add("Jambalya"); } } 我把这个类传递给我的强类型视图: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcLearner.Models.Person>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Create </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Create</h2> <% using (Html.BeginForm()) { %> <%= Html.LabelFor(person => person.Name) %><br /> <%= Html.EditorFor(person => person.Name) %><br /> <%= Html.LabelFor(person => person.Age) %><br /> <%= Html.EditorFor(person => person.Age) %><br /> <%= Html.LabelFor(person => person.FavoriteFoods[0]) %><br /> <%= Html.EditorFor(person => person.FavoriteFoods[0]) %> <% } %> </asp:Content> 当我浏览到该页面时,我最终得到错误消息:模板只能用于字段和属性访问器表达式.经过一段谷歌搜索,我发现这是因为EditorFor和LabelFor函数只能接受Model对象的直接属性,而且FavoriteFoods [0]不是直接属性.有没有人有一个工作可以使代码工作而不使用字符串来指定控件的名称?这甚至可能吗?最好我想使用模型中的表达式到需要编辑器的项目,该编辑器自己确定输入控件的名称. 尝试更多的东西,我能够使用以下对视图的更改来实现此功能: <% using (Html.BeginForm()) { %> <%= Html.LabelFor(person => person.Name) %><br /> <%= Html.EditorFor(person => person.Name) %><br /> <%= Html.LabelFor(person => person.Age) %><br /> <%= Html.EditorFor(person => person.Age) %><br /> <% foreach (String FavoriteFoods in Model.FavoriteFoods) { %> <%= Html.LabelFor(food => FavoriteFoods) %><br /> <%= Html.EditorFor(food => FavoriteFoods)%><br /> <% } %> <input type="submit" value="Submit" /> <% } %> 值得注意的是,EditorFor和LabelFor中表达式的右侧必须是您要填充的列表的确切名称,并且列表必须是基本类型(即String,Int32等).但是,当我尝试使用复杂类型时,它仍然会失败.我试图显示这个人类的列表,其中包含每个属性的输入,它会将所有这些显示给浏览器,但是它会向我的帖子操作返回一个空列表.如何使索引显示在列表项的输入名称中? This was a giant help in figuring out what was going on. 解决方法
我假设这是为FavoriteFoods列表.如何在ASP.NET MVC v1中完成这样的事情:
<input type="hidden" name="FavouriteFoods.Index" value="0" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用MVC的AuthorizeAttribute和多组角色?
- Modular Web Application with ASP.NET Core
- asp.net – 如何在SQL Server存储过程中使用逗号分隔(拆分)
- asp.net – 如何隐藏程序使用的技术?
- asp.net – 是否允许使用manifest.json的相对路径并将其放在
- asp.net-mvc-4 – Resharper无法解析主页中的部分视图
- asp.net – 在.NET 4上发现“有潜在危险的Request.Path ……
- asp.net – ADO.NET TableAdapter参数
- 如何在ASP.NET核心rc2中禁用浏览器缓存?
- asp.net-mvc – Orchard CMS安装错误?
- asp.net-mvc – SignalR持久连接的超时是多少?
- asp.net-mvc-5 – aspnet身份避免同时登录同一帐
- asp.net-mvc – 如何在json post期间发生异常时阻
- 将ASP.NET放在wordpress网站上
- asp.net – 会话状态,页面生命周期中的应用程序状
- iis – 我应该为我的生产服务器使用processModel
- 如何防止ASP.NET MVC将日期从UTC转换为本地?
- asp.net-mvc-3 – Ninject每个会话单身?
- asp.net-web-api – 如何在ASP.NET Web API中验证
- asp.net-mvc-3 – 如何确保Asp.net MVC项目中不同