#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.