创建自定义的HTML帮助:MyHelperFor [英] Creating custom Html Helper: MyHelperFor
本文介绍了创建自定义的HTML帮助:MyHelperFor的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个可以像
@Html.MyHelperFor(m => m.Name)
这应该返回例如:
<跨度名=姓名数据的东西=名称>< / SPAN>
如果是 @ Html.MyHelperFor(M = GT; m.MailID)
这将返回
if it is @Html.MyHelperFor(m => m.MailID)
This should return
<跨度NAME =MailID数据的东西=MailID>< / SPAN>
我应该能够在辅助方法来访问属性名称,使这种类型的帮手,我想。
I should be able to access the Property name in the helper method to make this type of helper ,I think.
我怎样才能做到这一点?
How can I do this?
推荐答案
您可以执行类似(下面会采取额外的HTML属性太)。
You can do something like (the following will take additional HTML attributes too).
public static MvcHtmlString MyHelperFor<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression, object htmlAttributes = null)
{
var data = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
string propertyName = data.PropertyName;
TagBuilder span = new TagBuilder("span");
span.Attributes.Add("name", propertyName);
span.Attributes.Add("data-something", "something");
if (htmlAttributes != null)
{
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
span.MergeAttributes(attributes);
}
return new MvcHtmlString(span.ToString());
}
这篇关于创建自定义的HTML帮助:MyHelperFor的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文