Flo*_*ent 8 c# placeholder mvc-editor-templates data-annotations asp.net-mvc-4
这是一个非常具体的问题.我设法通过使用名为EmailAddress.cshtml,保存在~/Views/Shared/EditorTemplates/文件夹中的编辑器模板自动将占位符属性添加到html5电子邮件输入类型.请参阅以下代码:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line", placeholder = ViewData.ModelMetadata.Watermark })
Run Code Online (Sandbox Code Playgroud)
它的工作原理是因为我[DataType(DataType.EmailAddress)]在视图模型中使用了DataAnnotation.
什么不起作用是我使用int?变量.
public class MiageQuotaRequestViewModel
{
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Nombre de place demandées", Prompt = "Nombre de place")]
[Range(0, 50, ErrorMessage = "La demande doit être comprise entre 0 et 50 places")]
public int? RequestedQuota { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
@Html.EditorFor 像这样翻译这个输入:
<input class="text-box single-line" data-val="true" data-val-number="The field Nombre de place demandées must be a number." data-val-range="La demande doit être comprise entre 0 et 50 places" data-val-range-max="50" data-val-range-min="0" data-val-required="Le champ Nombre de place demandées est requis." id="RequestedQuota" name="RequestedQuota" type="number" value="">
Run Code Online (Sandbox Code Playgroud)
问题是我无法显示PromptDataAnnotation(通常翻译placeholder).此外,DataType枚举没有任何"数字"或"整数"值,可以允许我像使用EmailAddress DataType一样使用EditorTemplate.
Flo*_*ent 13
基于Pat Burke评论,我可以使用UIHint数据属性与良好的编辑器模板相结合.
这是一个例子(Editor Template):
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line", placeholder = ViewData.ModelMetadata.Watermark, type = "number" })
Run Code Online (Sandbox Code Playgroud)
(ViewModel)
public class MiageQuotaRequestViewModel
{
[Required]
[UIHint("Number")]
[DataType(DataType.EmailAddress)]
[Display(Name = "Nombre de place demandées", Prompt = "Nombre de place")]
[Range(0, 50, ErrorMessage = "La demande doit être comprise entre 0 et 50 places")]
public int? RequestedQuota { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
最后的结果是:

<input class="text-box single-line"
data-val="true"
data-val-number="The field Nombre de place demandées must be a number."
data-val-range="La demande doit être comprise entre 0 et 50 places"
data-val-range-max="50"
data-val-range-min="0"
data-val-required="Le champ Nombre de place demandées est requis."
id="RequestedQuota"
name="RequestedQuota"
placeholder="Nombre de place"
type="number"
value="">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21274 次 |
| 最近记录: |