这是一个非常具体的问题。我设法使用EmailAddress.cshtml
保存在~/Views/Shared/EditorTemplates/
文件夹中的名为 的编辑器模板自动将占位符属性添加到 html5 电子邮件输入类型。请看下面的代码:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line", placeholder = ViewData.ModelMetadata.Watermark })
它之所以有效,是因为我[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; }
}
@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="">
问题是我无法显示Prompt
DataAnnotation(通常由 翻译placeholder
)。此外,DataType
枚举没有任何“数字”或“整数”值可以让我使用 EditorTemplate,就像我对 EmailAddress DataType 所做的那样。