Html.EditorFor の日付ピッカーを表示しようとしています
これを行うために、Views\Shared\EditorTemplate フォルダーに EditorTemplate を作成し、DateTime.cshtml という名前を付けました。
しかし、それは機能していません。代わりにエラーが発生しています---Microsoft JScript runtime error: Object doesn't support property or method 'datepicker'
このエラーを修正するのを手伝ってください
これは私のカミソリビューページです
@model MyWebRole.ViewModels.ViewModelEvents
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width:50%">
<legend>Event Details:</legend>
<div>
<table>
<tr>
<td>
@Html.EditorFor(model => model.vmStartDate)
@Html.ValidationMessageFor(model => model.vmStartDate)
</td>
</tr>
</table>
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
ここに私のDateTime.cshtmlがあります(下に貼り付けました)
@model System.DateTime?
<div class="editor-field">
@Html.TextBox("", String.Format("{0:MM/dd/yyyy}",(Model == DateTime.MinValue)? null : Model), new { @class="text"})
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#@ViewData.ModelMetadata.PropertyName").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'mm/dd/yy',
gotoCurrent: true
});
});
</script>
日付ピッカーを別のビューで動作させることができます
@model MyWebRole.Models.Events
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width:50%">
<legend>Event Details:</legend>
<div>
<table>
<tr>
<td>
@Html.EditorFor(model => model.StartDate)
@Html.ValidationMessageFor(model => model.StartDate)
</td>
</tr>
</table>
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
2 つのカミソリ ビューの違いは、-> 最初のもの ((datepicker が機能していない) は ViewModel をモデルとして使用していることです (mywebrole.ViewModels.EventViewModel)
--> 2 つ目は myWebrole.models.Events を使用しています (datepicker は正常に動作しています)
これは問題ですか?