2012-05-06 12 views
3

私はこれを行うには、私のHtml.EditorForためMVC3かみそりビューエラーのMicrosoft JScriptのランタイムエラー:オブジェクトがプロパティまたはメソッドをサポートしていません「datepicker'`

を日付ピッカーを表示しようとしています、私は私の見解でEditorTemplateを作成DateTime.cshtml

それを名前が、Plzをこれは私のかみそりの図であり、このエラーを修正するために

を私を助ける---代わりに、私はエラーを取得しています、Microsoft JScript runtime error: Object doesn't support property or method 'datepicker'

が動作していない\共有\ EditorTemplateフォルダ、ページ

@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> 
} 

、ここでは、私は日付ピッカー2つのかみそりのビュー間の差がある

@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> 
    } 

別のビューでの作業を取得することができています(下の貼り付け)私の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> 

ですその - >最初のもの((datepickerが機能しない)モデルとしてViewModelを使用しています。すなわち、(mywebrole.ViewModels.EventViewModel)

- > 2番目のファイルはmyWebrole.models.Events(日付ピッカーは正常に動作しています)を使用しています

これは問題ですか?

答えて

0

エラーが発生した場合、問題はセレクタだと思います。代わりに$( "#する@ ViewData.ModelMetadata.PropertyName")の、これを試してみてください:

$("input.text").datepicker({ ... 

(あるいは、可能性@ Html.TextBoxFor(モデル=>モデル)の代わり@html .TextBoxのように、入力id = PropertyNameとなり、セレクタが機能するはずです)。

また、datepicker JQueryプラグインのスクリプトが正常にページに読み込まれていることを確認してください。

+0

はい、datepicker JQueryプラグインのスクリプトがページに正常に読み込まれました。 – Millar

+0

私は、mywebrole.models.mymodelを使用しているときにdatepickerが正常に動作していることに気づきましたが、mywebrole.ViewModels.myViewModelを使用するとエラーが発生します。 – Millar

+0

@Millar Cool ...他のビューを投稿してから、セレクターが問題です。 "#@ViewData.ModelMetadata.PropertyName"を "input.text"に変更するだけで動作します。 – McGarnagle

関連する問題