2012-01-15 103 views
3

有沒有人寫過或有過一種方法來調用EditorFor使用屬性名稱而不是使用表達式。MVC 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); 

方法總是爲空,我試了很多東西。

乾杯

回答

0

因此,讓我得到這個直。你想要使用明確設計用於使用表達式的方法,目的是爲了強制類型化..而你希望它不被強類型化?

爲什麼不簡單地使用非強類型的版本呢?

「For」方法的目的是使它們具有強類型。這很令人困惑,爲什麼你想使用一個For類型,但不能用它來設計它。

+0

我正在尋找一個非強類型的版本。 我不想自己編寫或者自己編寫所有的模板(這是內部的)。 – Jim 2012-01-21 04:58:00