是否有人编写或有办法使用属性名称而不是使用表达式来调用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,我尝试了很多东西。
干杯
答案 0 :(得分:3)
我认为Editor
方法就是你所追求的:http://msdn.microsoft.com/en-us/library/system.web.mvc.html.editorextensions.editor.aspx
答案 1 :(得分:0)
所以,让我直截了当。您希望使用明确设计为使用表达式的方法,以使它们强类型化...并且您希望它不是强类型的?
为什么不简单地使用非强类型版本呢?
“For”方法的目的是使它们强类型化。令人困惑的是你为什么要使用For类型而不是将它用于它的设计目的。