大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 在EditorTemplate中渲染字段名称(通过EditorFor()渲染),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在ASP.NET MVC应用程序中,我已经开始使用“EditorFor”帮助程序,如下所示:
<div id="content-edit" class="data-form"> <p> <%= Html.LabelFor(c => c.title) %> <%= Html.TextBoxFor(c => c.title)%> </p> <p> <%= Html.LabelFor(c => c.biography) %> <%= Html.EditorFor(c => c. Biography)%> </p> </div>
在模型中,“传记”字段已经被装饰为:[UIHelper(“Html”)]。
我有一个’Html’部分视图(在视图/共享/编辑器模板下):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.XMl.Linq.XElement>" %> <textarea class="html"> <%= Model.ToString() %> </textarea>
现在我想将’textarea’的’ID’属性设置为字段的名称,如下所示:
<textarea id="Biography" class="html"> ... </textarea>
但是,目前我没有办法做到这一点。
我可以想到的是创建一个包含“Value”属性和“ControlID”属性的“Html”ViewModel。
但是,如果我以此为基础,而不是“System.XMl.Linq.XElement”,那么它将不再与“EditorFor”帮助器方法兼容,我必须手动完成所有操作。
有人还有类似的问题吗?
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.XMl.Linq.XElement>" %> <textarea id="<%= ViewData.TemplateInfo.HtmlFieldPrefix %>" class="html"> <%= Model.ToString() %> </textarea>
为了显示为什么这样工作,这里是TemplateHelpers.cs(MVC2 Preview 1源)中的位置,其中为数据库模板控件初始化了ViewData:
ViewDataDictionary viewData = new ViewDataDictionary(html.ViewDataContainer.ViewData) { Model = modelValue,TemplateInfo = new TemplateInfo { FormattedModelValue = formattedModelValue,ModelType = modelType,HtmlFieldPrefix = html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(expression),IsNullableValueType = (underlyingNullableType != null),} };
在上面的调用中,使用正在编辑的属性的名称对“expression”进行初始化(进一步调用堆栈)。
BTW,@Sperling以下抓住了我最初想念的细节:如果您使用(或可能使用)非默认的HtmlHelper.IdAttributeDotreplacement,那么您将要使用HtmlHelper.IdAttributeDotreplacement替换HtmlPrefix属性中的点。
以上是大佬教程为你收集整理的asp.net-mvc – 在EditorTemplate中渲染字段名称(通过EditorFor()渲染)全部内容,希望文章能够帮你解决asp.net-mvc – 在EditorTemplate中渲染字段名称(通过EditorFor()渲染)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。