Ich versuche herauszufinden, ob es eine Möglichkeit gibt, um sicherzustellen, dass nur numerische Eingaben mit Hilfe von Data Annotations und Entity Framework möglich sind.Wie mache ich ein Eingabefeld, um Zahlen nur mit EF und Datenannotationen zu erlauben?
Ich verwende den folgenden Code
[Required]
[DisplayName("Client No")]
[Column("client_no", TypeName = "smallint")]
public virtual Int16 Number { get; set; }
Ich möchte diese mit den Ziffernklasse angezeigt werden.
In einem Ort, den ich verwenden Sie die folgende
<input type="number" name="searchClientNo" class="numericOnly" /><br />
aber in dem Anmeldeformular Ich bin mit
@Html.EditorFor(m => m.Number, EditorTemplate.TextBox)
wo ich eine benutzerdefinierte haben gemacht EditorFor mit dem folgenden Code
<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>
Ich frage mich, wie kann ich diesen Code ohne Änderungen behalten, aber immer noch die numerische nur Textfeld verwenden. Muss ich UIHint verwenden?
Oder alternativ, ist es möglich, meine bestehenden EditorFor klüger?
Ich fand diesen Blogpost http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/, aber ich benutze bereits einen benutzerdefinierten EditorFor. Vielleicht muss ich einen neuen Typ hinzufügen, sagen wir EditorTemplate.NumericTextBox und einen weiteren Editor hinzufügen? Das hört sich so an, als könnte es funktionieren, ich werde das morgen versuchen ...
Vielen Dank im Voraus.
Hallo Darin, Dies ist die Lösung, die ich dachte, zu implementieren, aber möchte fragen, ob es innerhalb eines bestimmten EditorFor (mein generischer tetxbox-Typ) möglich ist, irgendwie die Entscheidung basierend auf Typ des Modells zu treffen? Ich habe meinen aktuellen Code in die Frage eingefügt. – Naomi
und ich benutze @ Html.TextBox und stelle die Eigenschaften zur Verfügung, aber wie sieht der Code aus, wenn ich stattdessen versuche, ? – Naomi
Darin, Ich habe noch einige verwandte Fragen. Ich habe folgendes implementiert: @ Html.TextBox ("", ViewData.TemplateInfo.FormattedModelValue, neu {type = "number", @class = "numericonly"}) @ * * @ – Naomi