Chcę, podobnie jak sprawdzanie po stronie klienta, jako walidacja po stronie serwera. Ja sobie z tego sprawę, jak następuje:Asp.Net MVC EnableClientValidation nie działa
Model: (Model posiada DataModel (dbml), który zawiera klasę testową)
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 to nic specjalnego.
Widok:
<% 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>
<% } %>
Aby to wszystkie prace I dodał także odnośniki do plików JS:
<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>
Ostatecznie musi pracować, ale robi to działa w 100%: Czyni sprawdza poprawność bez odświeżania strony po naciśnięciu przycisku. Wykonuje również "połowę" sprawdzania poprawności strony klienta. Tylko wtedy, gdy wpiszesz jakiś tekst w polu tekstowym, a następnie wrócisz do wpisanego tekstu. Zostanie wyświetlone sprawdzenie po stronie klienta. Ale kiedy próbuję tego, dotykając między kontrolkami, nie ma walidacji po stronie klienta.
Czy brakuje mi jakiegoś odniesienia lub czegoś? (Używam Asp.Net MVC 2 RTM)
[tutaj] (http://pastebin.com/685 AustrianTHH) to sposób sprawdzania poprawności na mojej stronie. Jednak sprawdzanie poprawności klienta nie działa w ogóle, czy widzisz jakiś problem? – Shimmy