0

我有一个 MVC3 项目。我有 2 个模型类。让我们称它们为 FooYes 和 FooNo。

我为每个创建了控制器。

我为两者创建了 CRUD 视图。

然后我根据这个链接实现了 jQuery DatePicker 。我只实现了选择器部分而不是验证。

在我的 FooYes edit.cshtml 中,日期选择器工作正常。在 FooNo 的 edit.cshtml 中没有。

我发现的唯一区别是为模型获取输出的类:

FooYes 在最终的 html 中看起来像这样:

<input class="date" 

FooNo 看起来像这样:

<input class="text-box single-line"

这是 FooYes 的模型:

    [Display(Name = "Creation Date")]
    [DataType(DataType.Date)]
    public virtual DateTime CreationDate { get; set; }

这是 FooNo 的模型:

    [Display(Name = "Expiration Date")]
    [DataType(DataType.Date)]
    public virtual DateTime ExpirationDate { get; set; }

如您所见,模型中的声明是相同的,所以不可能。我什至尝试将 FooNo 中的 ExpirationDate 属性复制并粘贴到 FooYes 中,并将 FooNo 中的所有内容复制到 FooYes 中的 FooYes 中,然后它就可以工作了。所以不是模型中的代码

以下是 .cshtml 中的代码:

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

这个和另一个之间的唯一不同是字段的名称。

当我在最终结果中查看源 html 时,标头、包含、链接,一切都完全相同,除了在不起作用的那个中 class= 设置为文本内容而不是日期。

我完全糊涂了。任何人有任何想法会导致这种情况吗?

4

2 回答 2

0

如果您真的只是按照此链接进行操作,则它不起作用的原因是设置日期选择器的选择器仅包含.date. 尝试将 JavaScript 更改为:

$('.date, .text-box.single-line').datepicker({dateFormat: "dd/mm/yy"});

看看它是否有效。如果是这样,您可能需要考虑修改为 FooNo 生成的文本框,因为它.text-box.single-line看起来像是一个生成类,它可能由其他不打算用作日期选择器的文本框共享。

于 2011-09-15T23:42:43.177 回答
0

要回答您的评论,您可以Date.cshtml通过将模板放在Views/Shared/EditorTemplates目录中来使其成为全局模板

于 2011-09-16T00:05:11.490 回答