2012-01-15 9 views
3

誰かが書いているか、式を使用する代わりにプロパティ名を使用してEditorForを呼び出す方法があります。MVC Editorプロパティの名前

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ですが、私は多くのことを試しました。私はこのストレートを取得してみましょう、だから、http://msdn.microsoft.com/en-us/library/system.web.mvc.html.editorextensions.editor.aspx

答えて

3

私はEditor方法はあなたが後にあるかと思います。式を強く型付けする目的で、式を使用するように明示的に設計されたメソッドを使用したいと思います。強く型付けされないようにしたいのですか?

単純に強く型付けされていないバージョンを使用するのはなぜですか?

"For"メソッドの目的は、厳密に型指定することです。 For型を使用するが、それが何のために設計されているのかを使用したくないのは混乱している。

+0

私は理想的にはプロパティからすべてのデータ注釈をフェッチする必要があるので、実際には理想的ではありません。注釈のコードを書く必要がありました。 – Jim

0

乾杯

+0

強く型付けされていないバージョンを探しています。 私は自分自身をロールしたり、自分自身でテンプレートのすべてを書きたい(内部である)ことは望ましくない。 – Jim

関連する問題