I was playing with ASP.NET MVC3 (RC2) and I couldn’t get jQuery UI’s datepicker to work for me in a partial view. It would always say datepicker is not a function.
It took me a while to figure out the problem is.
Firstly I was referencing jQueryUI’s css and jQuery UI in my layout page
_Layout.cshtml:
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script></head>
Then, at the bottom of my partial view I was calling datepicker like so:
Job.cshtml:
<div>
@Html.LabelFor(model => model.DueDate)
</div>
<div>
@Html.EditorFor(model => model.DueDate)
@Html.ValidationMessageFor(model => model.DueDate)
</div>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#DueDate").datepicker();
});
</script>
The problem was I didn’t notice that the MVC scaffolding had added a reference to jQuery to the top of my partial view. This reference to jQuery was wiping out the earlier reference to jQuery UI in layout page.
Job.cshtml:
@model JobSystem.Web.Models.Job
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<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>
The solution was to remove the reference to jquery in my partial view (Job.cshtml).
I also decided to remove the reference to jQuery UI from the layout page (_Layout.cshtml) and add it to the partial view (Job.cshtml).
I just noticed that when I insert jQuery into the Partial View, it is not working.
When I implement it on the main page, the partial view executes the code
Thank you!
Thankyou… so.much!!!!!!!!!!!
Thank you so much.
thank somuch