2012-07-04 14 views
5

Chcę użyć pomocnika Ajax.ActionLink Html, dlatego potrzebuję biblioteki jquery.unobtrusive-ajax.min.js, ale IE zawsze pokazuje ten błąd:ASP.NET MVC 3 i jquery.unobtrusive-ajax.min.js

Microsoft JScript runtime error: Unable to set value of the property 'unobtrusive': object is null or undefined

Czytałem, że rozwiązaniem jest wykorzystanie jquery.validate.min.js i jquery.validate.unobtrusive.min.js ale potem nie może rozpoznać wywołanie ajax po stronie serwera.

Odpowiedz

20

I've read that the solution is usage of jquery.validate.min.js and jquery.validate.unobtrusive.min.js

Nie, te 2 scenariusze nie mają nic wspólnego z jquery.unobtrusive-ajax.min.js. Są używane do dyskretnego sprawdzania poprawności. Dla Ajax. * Pomocników wszystko, czego potrzebujesz to jQuery i jquery.unobtrusive-ajax.min.js (zawarte w zamówieniu , KTÓREJ).

Tak na dyskretne AJAX trzeba:

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

Jeśli chcesz użyć dyskretne walidacji można również zawierać 2 skrypty potem (w ŻE kolejności):

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

Innym bardzo ważne jest, aby upewnić się, że usunąłeś absolutnie wszelkie ślady skryptów ze swojego projektu. Skrypty te są przestarzałe i począwszy od ASP.NET MVC 3 nie są już domyślnie używane. Należy również upewnić się, że youhave dyskretne AJAX włączone w Twojej web.config, w przeciwnym razie system awaryjny do spuścizny Microsoft skryptów ajax:

<appSettings> 
    <add key="webpages:Version" value="1.0.0.0"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
</appSettings> 
+0

Dziękuję za odpowiedź. Używam ich: jquery-1.7.2.min.js, jquery.unobtrusive-ajax.min.js, jquery.validate.min.js, jquery.validate.unobtrusive.min.js, jquery-ui-1.8.20. min.js i ustawiłem web.config, ale jak mogę wyeliminować ten błąd: Błąd środowiska wykonawczego Microsoft JScript: Nie można ustawić wartości właściwości "dyskretny": obiekt jest pusty lub niezdefiniowany? Ponieważ, jak wiem, jest to spowodowane przez jquery.unobtrusive-ajax.min.js. – sada

+0

Przepraszam. Miałeś rację. – sada

+2

Należy również zauważyć, że plik jquery.unobtrusive-ajax.js nie jest zgodny z żadną wersją jQuery wyższą niż 1.8.3. jquery 1.8.3 to najnowsza wersja, która jest kompatybilna z jquery.unobtrusive-ajax.js. – monstro

Powiązane problemy