【问题标题】:MVC3 DataType.Date EditorFor Outputting the Wrong Class in HTMLMVC3 DataType.Date EditorFor 在 HTML 中输出错误的类
【发布时间】:2011-11-18 07:29:04
【问题描述】:

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

我为每个创建了控制器。

我为两者创建了 CRUD 视图。

然后我根据this link 实现了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 中,然后它就可以工作了。所以不是模型中的代码

这是来自 .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= 设置为文本内容而不是日期。

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

【问题讨论】:

  • LOL,我有一种感觉,只要我发布一个问题,我就会弄清楚。那只是发生了。问题是带有 Date.cshtml 部分视图的 EditorTemplates 文件夹需要位于 EACH Views/{controller}/ 文件夹中。所以我有一个新问题......有没有办法让一个全局 EditorTemplates 文件夹覆盖我所有的控制器子文件夹?
  • 您确实应该提出一个新问题,以便人们在搜索时找到它。 StackOverflow 是关于社区的,并尽自己的一份力量。不过 DMac 回答了您的问题。
  • 如果您将模板放在 Views\Shared\EditorTemplates 中,那么它将被所有控制器拾取:)

标签: jquery asp.net-mvc-3 datetime datepicker editorfor


【解决方案1】:

如果你真的只是关注this link,那它之所以不起作用是因为设置日期选择器的选择器只包含.date。尝试将 JavaScript 更改为:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2011-08-13
      • 2012-09-19
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多