I want to use the Ajax.ActionLink Html helper therefore I need the jquery.unobtrusive-ajax.min.js library but IE is always showing this error:
Microsoft JScript runtime error: Unable to set value of the property 'unobtrusive': object is null or undefined
I've read that the solution is usage of jquery.validate.min.js and jquery.validate.unobtrusive.min.js but then I can't recognise the ajax call on server side.
jquery. unobtrusive-ajax is the javascript library that every ASP.NET MVC developer certainly knows. It's shipped with MVC bootstrapping template and it's responsible for providing plumbing code which helps to add ajax functionality to rendered forms and links.
The jQuery Unobtrusive AJAX library has been around for almost 10 years, and was first introduced in ASP.NET MVC 3.0, just as adoption of HTML5 custom data-* attributes was becoming commonplace and supported widely across browsers. It is a small library, 4kb when minified, that makes use of jQuery's AJAX capabilities.
Using AJAX In ASP.NET MVC. Implementation of Ajax can be done in two way in ASP.Net Application: using Update Panel and, using jQuery.
An unobtrusive validation in jQuery is a set of ASP.Net MVC HTML helper extensions.By using jQuery Validation data attributes along with HTML 5 data attributes, you can perform validation to the client-side.
I've read that the solution is usage of jquery.validate.min.js and jquery.validate.unobtrusive.min.js
No, those 2 script have nothing to do with jquery.unobtrusive-ajax.min.js
. They are used for unobtrusive validation. For Ajax.* helpers all you need is jQuery
and jquery.unobtrusive-ajax.min.js
(included in THAT order).
So for unobtrusive AJAX you need:
<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>
If you want to use unobtrusive validation you could also include the 2 scripts afterwards (in THAT order):
<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>
Another very important thing that you should make sure is that you have removed absolutely any traces of Microsoft*.js
scripts from your project. Those scripts are obsolete and starting from ASP.NET MVC 3 are no longer used by default. Also make sure that youhave enabled unobtrusive AJAX in your web.config, otherwise the system will fallback to the legacy Microsoft ajax scripts:
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
This is an old post, but if anyone needs the latest on unobtrusive ajax, it can be found here:
http://nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/3.0.0-beta2
There are other stable versions that work on latest jquery lib.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With