/ / Fehler beim Validieren von ASP.NET MVC 3.0 AjaxForm mit jQuery erhalten - asp.net-mvc-3, jquery, jquery-validate

Fehler beim Validieren von ASP.NET MVC 3.0 AjaxForm mit jQuery - asp.net-mvc-3, jquery, jquery-validate

Versuchen Sie, diese Lösung zu verwenden, um AjaxForm zu validieren ASP.Net MVC Ajax-Formular mit jQuery-Validierung aber ich bekomme Fehler: Uncaught exception: TypeError: Cannot convert "$("MyFrom").validate()" to object

Mein von:

@using (Ajax.BeginForm("MyFromAction", "Something", null, new AjaxOptions() { OnBegin = "onBeginMyFrom", OnFailure = "onFailureMyFrom", OnSuccess = "onSuccessMyFrom" }, new { @id = "MyFrom" }))
{
}

Mein Formular funktionierte korrekt und posten auf dem Server, aber nachdem ich jQuery-Validierung verwende, erhalte ich einen Fehler oben.

Irgendwelche Ideen?

AKTUALISIEREN: Ich habe nicht erwähnt, dass ich MVCContrib FluentHtml verwende.

MVCContrib erforderte dies http://weblogs.asp.net/srkirkland/archive/2011/03/08/adding-unobtrusive-validation-to-mvccontrib-fluent-html.aspx Unauffällige Validierungsarbeit bekommen.

Wird MvcContrib in der nächsten Version standardmäßig eine unauffällige Validierung unterstützen?

Antworten:

1 für die Antwort № 1

Die Antwort, die Sie betrachten, war mit a verwandtvorherige Version von ASP.NET MVC. In ASP.NET MVC 3 wird die Client-Validierung mithilfe des jquery validate-Plugins durchgeführt und dies in einer unaufdringlichen Angelegenheit. Sie brauchen dafür keinen Code. Als Erstes müssen Sie sicherstellen, dass Sie die richtigen Skripte eingebunden haben:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

Dann ist das unauffällige JavaScript und die Validierung in web.config aktiviert:

<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

Jetzt kannst du dein AJAX-Formular richtig verhalten:

@using (Ajax.BeginForm("MyFromAction", "Competition", null, new AjaxOptions() { OnBegin = "onBeginMyFrom", OnFailure = "onFailureMyFrom", OnSuccess = "onSuccessMyFrom" }, new { @id = "MyFrom" }))
{
...
}

Das Formular wird auf der Clientseite nach Validierungsfehlern suchen, und es wird erst gesendet, wenn sie behoben sind.