我试图弄清楚是否有一种方法可以确保使用数据注释和实体框架仅允许数字输入。
我正在使用以下代码
[Required]
[DisplayName("Client No")]
[Column("client_no", TypeName = "smallint")]
public virtual Int16 Number { get; set; }
我希望使用数字类来显示它。
在一个地方我使用以下内容
<input type="number" name="searchClientNo" class="numericOnly" /><br />
但在报名表中我使用的是
@Html.EditorFor(m => m.Number, EditorTemplate.TextBox)
我有一个带有以下代码的定制 EditorFor
<div class="editor-label">
@Html.Label((ViewData.ModelMetadata.DisplayName??ViewData.ModelMetadata.PropertyName),
new Dictionary<string, object>
{
{ "for", ViewData.ModelMetadata.PropertyName }
})
</div>
<div class="editor-field">
@Html.TextBox("", (object)Model,
new Dictionary<string, object>
{
{ "id", ViewData.ModelMetadata.PropertyName },
{ "name", ViewData.ModelMetadata.PropertyName },
{ "class", "text-box single-line"},
{ "data-bind", "value: " + ViewData.ModelMetadata.PropertyName },
})
@Html.ValidationMessage(ViewData.ModelMetadata.PropertyName,
new Dictionary<string, object>
{
{ "data-valmsg-for", ViewData.ModelMetadata.PropertyName }
})
</div>
我想知道如何保留此代码而不进行更改,但仍使用仅数字文本框。我需要使用 UIHint 吗?
或者,是否有可能使我现有的 EditorFor 变得更智能?
我找到了这篇博文http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/ http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/但我已经在使用自定义 EditorFor。我可能需要添加一个新类型,例如 EditorTemplate.NumericTextBox 并添加另一个编辑器?这听起来似乎可行,我明天要尝试一下......
预先非常感谢。