MVC EditorFor属性名称

时间:2012-01-15 06:20:27

标签: c# model-view-controller

是否有人编写或有办法使用属性名称而不是使用表达式来调用EditorFor。

EditorFor("Code")

而不是

EditorFor(_ => _.Code)

我想写一些更通用的东西。通过创建表达式调用EditorFor证明是令人厌倦的,我无法相信没有更好的方法。

这不起作用。

var root = Expression.Parameter(Model.GetType(), "_");                
var expr = Expression.Lambda(Expression.MakeMemberAccess(root, property), root);
var ef = (Expression<Func<Product, string>>) expr;
var method = typeof(EditorExtensions).GetMethod("EditorFor", BindingFlags.Public | BindingFlags.Static, null, new[] {typeof(HtmlHelper<>), typeof(Expression<Func<,>>)}, null);

方法总是为null,我尝试了很多东西。

干杯

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

所以,让我直截了当。您希望使用明确设计为使用表达式的方法,以使它们强类型化...并且您希望它不是强类型的?

为什么不简单地使用非强类型版本呢?

“For”方法的目的是使它们强类型化。令人困惑的是你为什么要使用For类型而不是将它用于它的设计目的。