2012-03-08 3 views
0

Я после этой tutorial, чтобы отобразить DatePicker, когда я нажимаю в текстовое поле ... Но выбор даты не отображается ...Почему датапикер не отображается на моем веб-сайте MVC 3?

Модель Класс (резервирование):

[Required(ErrorMessage = "Date requise.")] 
    [Display(Name = "Date")] 
    [Column("Date")] 
    [DataType(DataType.DateTime)] 
    public DateTime Date { get; set; } 

EditorHookup.js

/// <reference path="~/Scripts/jquery-1.5.1.js" /> 
/// <reference path="~/Scripts/jquery-ui-1.8.11.js" /> 
$(document).ready(function() { 
$('.date').datepicker({ dateFormat: "dd/mm/yy" }); 
}); 

Частичный вид (Date.cshtml)

@inherits System.Web.Mvc.WebViewPage<System.DateTime?> 
@model DateTime 
@Html.TextBox("", Model.ToString("dd/MM/yyyy"), 
       new{@class="date"}) 
** TODO Wire up the date picker! ** 

Мой взгляд

@model TennisOnline.Models.Reservation 

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

<h2>Create</h2> 

<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> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script> 
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" /> 
<script src="@Url.Content("~/Scripts/EditorHookup.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) { 
@Html.ValidationSummary(true) 
<fieldset> 
    <legend>Reservation</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Date) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Date) 
     @Html.ValidationMessageFor(model => model.Date) 
    </div> 

Итак, вы знаете, почему выбора даты не отображается, пожалуйста? Заранее спасибо

ответ

3

Ваша модель частичного просмотра не вызывается, потому что тип данных вашего свойства неверен. Заменить

[DataType(DataType.DateTime)] 

с

[DataType(DataType.Date)] 

и все должно работать, как задумано.

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

Вы должны также удалить @inherits линию с вашего частичного зрения, как наследуется не допускается с моделью.

+0

После этого я улавливаю исключение HttpParseException: ключевое слово «inherits» не допускается при использовании ключевого слова «model». – Razor

+1

По крайней мере, теперь вы знаете свой частичный вид вызвано. Вы добиваетесь прогресса! Вы должны избавиться от строки @inherits. Я обновляю свой ответ. – Falanwe

+0

Спасибо, я удаляю строку @inherit ... Но у меня есть новое исключение сейчас извините :(== > InvalidOperationException: элемент модели, переданный в словарь, является нулевым, но для этого словаря требуется элемент с ненулевой моделью типа «System.DateTime». – Razor

0

Я думаю, что ваш частичный вид может быть назван DateTime.cshtml, чтобы соответствовать типу вашего свойства модели.

2

Я думаю, у вашего вида отсутствует ссылка на скрипт = "~/Scripts/jquery-1.5.1.js".

+0

Спасибо, я добавляю ссылку, но моя проблема не сохраняется :( – Razor

Смежные вопросы