0

ラベル、ウォーターマーク付きのテキストボックス、登録フォームの検証メッセージを含む文字列のテンプレートを作成したいと思います。さらに、モデルからフィールドを取得するために必須であるという注意事項 (星など) を追加したいと思います。

これまでのところ、これを含むファイル string.cshtml を ~/Views/Account/EditorTemplates に作成しました:

<span class="editor-label>@Html.Label(ViewData.ModelMetadata.Watermark)</span>
<span class="editor-field">@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { placeholder =  ViewData.ModelMetadata.Watermark })</span>
<span class="error_message">@Html.ValidationMessage(ViewData.ModelMetadata.PropertyName)</span>

モデルは次のようになります。

    [Required]
    [DataType(DataType.Text)]
    [Display(Prompt = "First name")]
    public string FirstName { get; set; }

そして、私はそれを次のように呼んでいます:

@Html.EditorFor(m => m.FirstName)

どこが間違っているのですか?

4

2 に答える 2

1

属性を使用するため Text.cshtmlではなく、エディター テンプレートを呼び出す必要があります。String.cshtml[DataType(DataType.Text)]

UIHint 属性を使用して、エディター テンプレートのカスタム名を指定することもできます。

[Required]
[DataType(DataType.Text)]
[Display(Prompt = "First name")]
[UIHint("Foo")]
public string FirstName { get; set; }

そして今、あなたは持つことができ~/Views/Account/EditorTemplates/Foo.cshtmlました。

于 2012-03-01T10:17:21.593 に答える