Ich möchte sowie Client Side Validation als Server Side Validation. Ich erkennen dies wie folgt:Asp.Net MVC EnableClientValidation funktioniert nicht
Modell: (Das Modell hat ein Datamodel (dbml), die enthält die Test-Klasse)
namespace MyProject.TestProject
{
[MetadataType(typeof(TestMetaData))]
public partial class Test
{
}
public class TestMetaData
{
[Required(ErrorMessage="Please enter a name.")]
[StringLength(50)]
public string Name { get; set; }
}
}
Controller ist nichts Besonderes.
The View:
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("Index", "Test", FormMethod.Post,
new AjaxOptions {}, new { enctype = "multipart/form-data" }))
{%>
<%= Html.AntiForgeryToken()%>
<fieldset>
<legend>Widget Omschrijving</legend>
<div>
<%= Html.LabelFor(Model => Model.Name) %>
<%= Html.TextBoxFor(Model => Model.Name) %>
<%= Html.ValidationMessageFor(Model => Model.Name) %>
</div>
</fieldset>
<div>
<input type="submit" value="Save" />
</div>
<% } %>
Um diese alle Arbeiten zu machen Ich habe auch Verweise auf js Dateien:
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
Schließlich hat es funktioniert, aber es funktioniert nicht 100% funktionieren: Es tut Bestätigt nach dem Drücken der Taste, dass keine Seite aktualisiert wird. Es macht auch "halb" Client Side Validation. Nur wenn Sie Text in das Textfeld eingeben und dann den eingegebenen Text zurücksetzen. Die clientseitige Validierung wird angezeigt. Aber wenn ich dies versuche, indem ich zwischen den Steuerelementen tippe, gibt es keine Client Side Validation.
Vermisse ich eine Referenz oder etwas? (Ich benutze Asp.Net MVC 2 RTM)
[Hier] (http://pastebin.com/685bHTHH) ist, wie die Validierung in meiner Seite enthalten ist. Die Client-Validierung funktioniert jedoch überhaupt nicht. Sehen Sie ein Problem? – Shimmy