календарь jqueryui не отображается после обновления проекта

#asp.net #asp.net-mvc-3

#asp.net #asp.net-mvc-3

Вопрос:

После обновления моего проекта с ASP.NET С MVC2 до MVC3, просто частичный просмотр календаря больше не отображается. Код для этого представления приведен ниже.

 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<AkwiMemorial.Models.CalendarModel>" %>
<link href="../../Content/jquery.ui.all.css" rel="stylesheet" type="text/css" />
      <script type="text/javascript" src="../../Scripts/jquery-1.4.1.js"></script>
      <script type="text/javascript" src="../../Scripts/jquery.ui.core.js"></script>
      <script type="text/javascript" src="../../Scripts/jquery.ui.datepicker.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
    $('#datepicker').datepicker({
        inline: true,
        onSelect: function(dateText, inst) {
        $('#DateStr').val(dateText);
        $('form').trigger('submit');   }});
    });
</script>


 <% using (Html.BeginForm()) { %>   
 <div>
   <div id="datepicker"></div>
   <%= Html.HiddenFor(x => x.DateStr)%>
</div>
 <% } %>
  

Есть идеи? TIA.

Редактировать 1:

Чтобы проверить, не связано ли это с моим исходным проектом, я изменил представление Home / Index в новом проекте MVC3, как показано ниже. При выполнении я получаю сообщение об ошибке «Ошибка среды выполнения Microsoft JScript: объект не поддерживает это свойство или метод». Это использование jquery-1.5.1.min.js .

 @model DateTime     

@{
    ViewBag.Title = "Home Page";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<script type="text/javascript">
         $(document).ready(function () {
             $('.date').datepicker({ dateFormat: "dd/mm/yy" });
         });
</script>

 @using ( Html.BeginForm())
{
   @Html.TextBox("datepicker", Model.ToString("dd/MM/yyyy"), new { @class = "date" });    
  <input id="submit" name="submit" type="submit" value="Save" />
}
  

Почему это не работает?

** Правка 2: **

Получил календарь jquery для отображения в MVC3, используя следующий частичный вид:

 @model DateTime

@using (Html.BeginForm())
{
    <div id="datepicker">
        @Html.TextBox("date", Model.ToString("dd/MM/yyyy"), new { @class = "date" })    
    </div>    
}

<script type="text/javascript">
    $(document).ready(function () {
        $('#datepicker').datepicker({
            inline: true,
            onSelect: function (dateText, inst) {
                $('#date').val(dateText);
                $('form').trigger('submit');
            }
        });
    });
</script>
  

Теперь вернемся к исходной проблеме.

Комментарии:

1. Если вы посмотрите на исходный код после отображения страницы, правильно ли выглядит javascript? Все ли ваши ссылки на скрипты и стили работают правильно при просмотре исходного кода?

2. Спасибо за ответ. Да, javescript такой же, как исходный код, за исключением части, заключенной в Html.BeginForm(), которая была заменена тегом form.

3. Вы видите какие-либо ошибки в firebug или эквивалентных инструментах разработчика в другом браузере?

4. ДА. Отладчик IE script прерывается с ошибкой «Объект не поддерживает это свойство или метод» в jquery-1.6.1.min.js, строка 16 символ 15-120, даже со всеми ссылками на мои скрипты на месте.

Ответ №1:

У меня была такая же проблема, и она исправлена путем обновления до последней версии jquery UI и jquery.

Комментарии:

1. Спасибо за ответ. Я пошел дальше и загрузил jquery.ui версии 1.8.13 core и datepicker и изменил страницу на использование jquery 1.5.1, но не могу видеть календарь.

2. до каких версий jquery и jquery UI вы обновились? Я только что скачал jquery 1.6.1.min и jquery UI 1.8.13, но это не решает мою проблему.

Ответ №2:

Без дополнительной информации, я предполагаю, что проблема связана с вложенными div ‘s. Возможно, здесь играет роль css браузера по умолчанию. Пытаюсь установить для z-index datepicker div более высокое значение.

Комментарии:

1. Спасибо, но это не устраняет проблему с z-индексом, равным 10. Пожалуйста, обратите внимание, что этот код отлично работал в MVC2.