2012-05-13 8 views
0

せずにHTMLを入力:ASP MVCが強く、私はのようなもの行うことができるようにしたいと思いかみそり

<input [email protected] (as the actual property name and not its value) [email protected] type="text/> 

をそう結合そのモデルはまだ動作しますが、私はカミソリのヘルパーを使用する必要はありません。

+1

あなたが編集していてはいけません。答えは:HtmlHelpersを使用してください(そして、彼らは正しいでしょう) –

+0

@RaphaëlAlthaus私はそれについて考えて、彼らがいくつかの状況で価値があることに気付きましたが、彼らは簡単な事のために苛立つことがありますか? – Lee

答えて

1

あなたはあなたの表示名を返すヘルパーメソッドを追加することができます

public static MvcHtmlString GetPropertyName<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression) 
     { 
      var metaData = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData); 
      string value = metaData.PropertyName ?? expressionHelper.GetExpressionText(expression); 
      return MvcHtmlString.Create(value); 
     } 

をそしてあなただけの使用:@ Html.GetPropertyName(M => m.SomeProperty)

+0

私はこのアイデアが大好きです。次に、検証ヘルパーのような実際に値を追加し、コンボボックス、テキストボックス、フォーム、URLなどのような些細なものに対しては使用しないで、Razorヘルパーのみを使用できます妨げになる。 – Lee

+0

私はもちろんRazorヘルパーを使ってRazorヘルパーを避けるために皮肉を実感しています:) – Lee

+0

まあ、それはあなた次第です...私は個人的に私のViewsが@ Html.TextBoxForを使ってもっとクリーンであると思います。私自身html。 – Romias

関連する問題