2014-07-21 58 views
0

我想將佔位符添加到Html.EditorFor()。將佔位符(水印)添加到MVC4.5中的Html.EditorFor()

我在Shared \ EditorTemplates文件夾中創建了一個模板文件,並將其命名爲String.cshtml。然後把它放在該文件中:

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

並在模型中添加屬性Display(Prompt = "E-Mail")

當我使用此屬性與另一個屬性([DataType(DataType.EmailAddress)])不顯示佔位符,但是當刪除此屬性時,它是可以的。

回答

0

當一個屬性被標記爲[DataType(DataType.EmailAddress)]時,它實際上使用一個名爲EmailAddress.cshtml的模板來呈現它。你必須自定義模板,以及如果你想提供這樣的功能...

共享\ EditorTemplates創建EmailAddress.cshtml:

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

謝謝,但如何定義呢? – Niloo

+0

就像你使用String.cshtml一樣,創建一個名爲EmailAddress.cshtml的文件。 ''email'與輸入類型基本相同。不幸的是,默認的模板被隱藏在System.Web.Mvc.dll的C#代碼中,但是你可以看到EmailAddress的一個是如何在HtmlHelper.TextBox中實現的...... http://aspnetwebstack.codeplex.com/SourceControl/latest #src/System.Web.Mvc/Html/DefaultEditorTemplates.cs –

+0

謝謝,我如何使用EmailAddress的默認模板,並只爲它添加佔位符? – Niloo