2012-01-31 10 views
8

MVCビューのテキストボックスにあるplaceholder attrのデータ注釈を付ける方法はありますか?MVCのテキストボックスのプレースホルダattrのデータ注釈を提供

例:私のViewModel.csで

、何かのように:私の見解では

[Placeholder="First name"] 
public string FirstName { get; set; } 

@this.Html.TextBoxFor(m => m.FirstName) 

それは、これをレンダリングすることができる場合:

<input type="text" placeholder="First name" ... /> 

これは可能ですか?ありがとう!

答えて

10

はないモデルでは、

@this.Html.TextBoxFor(m => m.FirstName, new{placeholder="First name"}) 

ああを試してみてください。

独自のカスタム属性http://blogs.msdn.com/b/aspnetue/archive/2010/02/24/attributes-and-asp-net-mvc.aspxを定義することができます。私はhtmlを生成するためにカスタムhtmlヘルパーが必要だと思います。

+1

これは素晴らしいです!あなたが継承する必要がある属性を知っていますか?あなたのリンクの例は 'ActionFilterAttribute'から継承します –

+0

例には属性クラスのリストがあり、あなたがやりたいことに最も近いものを選んでください。または、System.Attributeから継承してclean(er)を開始します。 – PhilW

0

私はそうは思いませんが、独自のカスタムヘルパーと属性を作成してそれを行うことができます。 http://www.aspnetwiki.com/page:creating-custom-html-helpers

+0

リンクありがとうございます!残念ながら、ビューモデルのプロパティの上に '[Placeholder =" First name "]'を持つ例はありません。代わりに、 'this.Html.TextboxFor(m => m.FirstName、" Placeholder text here ")'の例があります。これはハードコーディングされたこのテキストをビューモデルではなく、景色。 –

+0

私は知っている、あなた自身のヘルパーと属性をロールバックする必要があります。ここで、BuildStartedの答えは、カスタム属性の作成方法を示しています。http://stackoverflow.com/questions/7418664/access-displayname-attribute-from-the-model-in-mvc-viewカスタムヘルパーはカスタム属性を読み取ることができます。 –

関連する問題