47

生成された入力フィールドはMVC4デフォルトでサポートされていますか? placeholders何も見つからなかったので、独自のものを実装しようとしていますが、残念ながらコントロールの生成中Prompt = "E-Mail"に渡されません。ViewData.ModelMetadata.Watermarkなんで?

モデル

public class LogOnModel
{
    [Required]
    [Display(Name = "E-Mail", Prompt = "E-Mail")]
    [DataType(DataType.EmailAddress)]
    public string Email { get; set; }
}

@Html.TextBoxFor(m => m.Email, new { placeholder = ViewData.ModelMetadata.Watermark })

placeholderタグにテキストがないHTMLコードを取得します

<input data-val="true" data-val-regex="Please enter a valid e-mail address" data-val-required="The E-Mail field is required." id="Email" name="Email" placeholder="" type="text" value="" class="valid">
4

10 に答える 10

47

プラグインを使用する代わりに、エディター テンプレートを使用できます。あなたがする必要があるのは、Shared\EditorTemplatesフォルダにテンプレートファイルを作成し、それを呼び出すことString.cshtmlです. 次に、これをそのファイルに入れます:

@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue, 
    new { placeholder = ViewData.ModelMetadata.Watermark })

次に、次のようにビューで使用します。

@Html.EditorFor(m=>Model.UnitPercent)

欠点は、これは type のプロパティで機能し、透かしをサポートする必要があるstringそれぞれのテンプレートを作成する必要があることです。type

于 2013-04-16T08:19:01.460 に答える
13

以下に示すように、Css クラス、プレースホルダーなどを簡単に追加できます。

@Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder="Name" })

お役に立てれば

于 2015-04-17T14:24:52.133 に答える
4

デフォルトでは、そうではありません。ただし、 HTML5 を出力できる HTML ヘルパーを含む MVCHtml5Toolkit NuGet パッケージを使用できます。たとえば、ツールキットをインストールした後、次の HTML ヘルパー呼び出しを使用できます。

@Html.Html5TextBoxFor(m => m.Email, InputTypes.InputType.Email)

これにより、次の HTML が出力されます。

<input id="Email" name="Email" placeholder="E-Mail" type="Email" value="">

ご覧のとおり、プレースホルダーが正しくレンダリングされるようになりました。

于 2013-04-16T08:02:30.073 に答える
-1
 @Html.TextBoxFor(m => m.UserName, new { @class = "form-control",@placeholder = "Name"  })  
于 2016-12-03T04:05:48.993 に答える