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 № 1Die 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.