MVC3数据类型.日期编辑器输出错误的类在HTML



我有一个MVC3项目。我有2个模范班。我们叫它们FooYes和fooo。

我为每一个创建了控制器。

我为两者都创建了CRUD视图。

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

在我的FooYes编辑。CSHTML日期选择器工作正常。在编辑中。

我发现唯一的区别是在获得模型输出的类中:

FooYes在最后的html中是这样的:

<input class="date" 

fooo是这样的:

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

下面是FooYes的模型:

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

下面是foo的模型:

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

正如您所看到的,模型中的声明是相同的,所以不可能是那样。我甚至尝试将ExpirationDate属性从fooo复制粘贴到FooYes中,并将fooo到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=被设置为文本而不是日期。

我完全糊涂了。有人知道是什么引起的吗?

如果您真的只是遵循这个链接,那么它不起作用的原因是因为设置日期拾取器的选择器只包含.date。尝试将JavaScript更改为:

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

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

要回答您的评论,您可以通过将Date.cshtml模板放入Views/Shared/EditorTemplates目录

来使其全局化。

最新更新