asp.net mvc editorfor
问题描述:
是否有可能得到EditorFor
方法也渲染像EditorForModel
方法那样的属性的标签和验证?asp.net mvc editorfor
现在当我使用EditorFor
方法的属性(例如字符串),它只呈现文本框。
编辑
阿尔尼斯我尝试过了,有一些问题:
扩展方法应在通用HtmlHelper类的约束。从帮助程序返回字符串也导致编码的HTML。
所以我修改你的代码
public static MvcHtmlString EditorWithLabel<T>(this HtmlHelper<T> h,Expression<Func<T, object>> p)
{
return new MvcHtmlString(string.Format("{0}: {1}", h.LabelFor(p), h.EditorFor(p)));
}
但主要的问题是,它仅适用于当PROPERT是字符串类型。
当属性是Decimal,Int,DateTime时,会抛出一个excel。
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
答
我会创建自定义的HTML帮助(代码是未经测试):
public string EditorWithLabel<T>(this HtmlHelper h,
Expression<Func<T, object>> p){
return string.Format("{0}: {1}",h.LabelFor(p),h.EditorFor(p));
}
这可以用templates实现过,但我想自定义的助手更适合的。
+0
请参阅我的文章,我已编辑它。 – user137348 2010-11-21 12:31:55
我很确定问题在别处。对于整数,小数点,日期时间和自定义类型也使用相同的方法。 – 2010-11-22 10:57:50
可能是我使用ASP.NET MVC 3 RC(Razor)的问题? – user137348 2010-11-22 12:54:10