asp.net-mvc – ASP.NET MVC可以生成具有小写名称和id属性的元素
发布时间:2020-07-09 09:09:26 所属栏目:asp.Net 来源:互联网
导读:我讨厌ASP.NET html帮助程序在与POCO属性相同的情况下生成名称和id属性. 大多数开发人员通常使用名称和id的小写值,但我似乎无法在ASP.NET MVC中找到实现此目的的方法. 通过源代码查看显示无法覆盖此功能,但我可能错了. 这是可能吗? 编辑: 我会更具体,我正在
我讨厌ASP.NET html帮助程序在与POCO属性相同的情况下生成名称和id属性. 大多数开发人员通常使用名称和id的小写值,但我似乎无法在ASP.NET MVC中找到实现此目的的方法. 通过源代码查看显示无法覆盖此功能,但我可能错了. 这是可能吗? 编辑: 我的模型看起来像这样: public class Customer { public string FirstName { get; set; } public string LastName { get; set; } } 在我看来,我使用Html herlpers: @Html.InputFor(m => m.FirstName) 这会生成如下所示的标记: <input type="text" name="FirstName" id="FirstName" value="" /> 我讨厌FirstName属性大写.在一个完美的世界中,我想要一种方法来覆盖这个属性值的生成,这样我就可以让它说“firstName”. 我不想将POCO属性名称更改为小写. ASP.NET MVC框架的大部分内容都是可扩展和可定制的 – 这不是吗? 解决方法显示(Name =“abc”)属性会更改Html.LabelFor的输出,以及何时使用EditorForModel和DisplayForModel.它不会影响Html.TextBoxFor的呈现方式,也不应该改变表单字段的id或name属性的呈现方式.如果你真的需要这样做,你必须编写自己的html助手public static MvcHtmlString LowerTextBoxFor<TModel,TProperty>(this HtmlHelper<TModel> html,Expression<Func<TModel,TProperty>> expr) { StringBuilder result = new StringBuilder(); TagBuilder tag = new TagBuilder("input"); tag.MergeAttribute("type","text"); var lowerPropertyName = ExpressionHelper.GetExpressionText(expr).ToLower(); tag.MergeAttribute("name",lowerPropertyName); tag.MergeAttribute("id",lowerPropertyName); result.Append(tag.ToString()); return new MvcHtmlString(result.ToString()); } 你可以在视图中使用这个html助手. @Html.LowerTextBoxFor(x=>x.Property1) 请注意,此示例只生成id和name属性.你必须编写其他属性的代码,如不引人注目的属性,甚至是这种方法的其他重载才能有效地使用它 (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Url.Action如何从模型中添加参数值
- asp.net-mvc – 在Controller操作方法中重用代码的最佳方法
- asp.net-core – 编译netcoreapp1.0,代码包含#if!NETSTAND
- asp.net – 将ViewState移出页面?
- ASP.NET搜索引擎
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证
- asp.net – 如何使用javascript生成假回发?
- asp.net-mvc – TempData在第二个请求后不会被破坏
- 在asp.net c#应用程序中使用Graphviz Dll
- asp.net-mvc – 如何将XML作为POST传递给ASP MVC .NET中的A
推荐文章
站长推荐
热点阅读