【发布时间】:2011-12-14 15:14:10
【问题描述】:
我想创建一个新属性 TipAttribute,我可以使用它来向我的用户显示有用的提示。
public class EditPersonModel {
[Display(Name = "Full Name")]
[Tip(Message = "Enter the person's full name.")]
public string Name { get; set; }
}
所以在我看来我会这样做
<div class="editor-field">
@Html.InputFor(m => m.Name)
@Html.TipFor(m => m.Name)
</div>
它会渲染
<div class="editor-field">
<input id="Name" name="Name" type="text" value="">
<div class="tip">Enter the person's full name.</div>
</div>
我知道我需要为 HtmlHelper 编写一个 Extension 方法,但我不知道里面应该写什么!
public static MvcHtmlString TipFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression) {
???
}
我已经开始研究 Mvc3 源代码中 DisplayAttribute 的实现,但它非常复杂,看起来提供我自己的自定义属性并不容易/可插入。是否有标准的 MVC3 方式来执行此操作?
谢谢!
【问题讨论】:
标签: asp.net-mvc-3