web-dev-qa-db-ja.com

Html.EditorForでプレースホルダー属性を使用するにはどうすればよいですか?

Html.EditorForでプレースホルダー属性を使用したいので、最初の答えと同じようにした: 。NET MVC 3 Razor EditorFor extension?のあるHtml5プレースホルダー?

しかし、最後の部分ではEditorTemplatesフォルダーがないので作成しました。string.cshtmlビューを作成しようとしてもできませんでした。名前「string」が予約されているため、代わりにstringg.cshtmlを選択し、うまくいきませんでした!プログラムの他の場所で名前を変更する必要がありますか?私はまさに答えが好きでした...

ありがとうございました!

37
caj

MVC 5.1にアップグレードすると、EditorForでHTML属性を使用できます。

@Html.EditorFor(m => m.variable, new { htmlAttributes = new { placeholder = "Your Placeholder Text" } })

http://www.asp.net/mvc/overview/releases/mvc51-release-notes

53
Medo
 @Html.EditorFor(model => model.members_ssn, new { htmlAttributes = new { @class = "form-control", placeholder = "Your Example Here" } })
12
Jay

TextBoxForではなくTextAreaForまたはEditorForを使用する場合は、メソッドが直接htmlAttributesオブジェクトを想定しているため、@ Medoの回答から内側のキーと値のペアのみを使用します。

@Html.TextBoxFor(m => m.variable, new { placeholder = "Your Placeholder Text" })

(これは元の質問とは正反対ですが、プレースホルダーテキストをHtml.TextAreaFor!に追加する方法の答えを探して、このページに早くアクセスしたときにここにあると助かります。)

4
Jon Schneider

これはMVC 5で機能します。

私の場合、次のようにモデルのメタデータからプレースホルダーを設定しようとしていました。

@Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control", placeholder = Html.DisplayNameFor(x => x.name) } })
3
César León

次のようなjqueryを使用します。例:$( "#FirstName")。attr( "placeholder"、 "名前を入力しない-検索ボタンを使用");

0
Anthony Denahy