【问题标题】:Why isn't my EditorTemplate firing?为什么我的 EditorTemplate 没有触发?
【发布时间】:2010-11-25 21:54:36
【问题描述】:

这是视图中的项目

 @Html.EditorFor(Function(model) model.BirthDate)

这是来自 EditorTemplate 的代码(简化版)

@ModelType Date?
<span>
    @Html.TextBox("", Model)
</span>

但输出没有 span 标签。

model.BirthDate 的数据类型是Date?

文件夹结构是

  • 查看次数
    • 共享
      • 编辑器模板
        • 日期.vbhtml

编辑

好的,经过一番挖掘,我发现如果我在我的 BuddyClass 中添加&lt;UIHint("Date")&gt;,那么模板就可以工作了。

所以我的“新”问题是......为什么默认情况下不选择这个?

【问题讨论】:

  • 哦,在你评论我为什么使用@ModelType而不是@Model之前...因为它是VB和C#之间的区别:)
  • 如果您的 DateOfBirth 属性是 DateTime,则您的模板应称为 DataTIme.vbhtml
  • BirthDate 属性是 Date?,因为 a) 我并不真正关心出生时间,b) 我根本不需要用户告诉我他们的出生日期。

标签: asp.net-mvc vb.net asp.net-mvc-3 razor editortemplates


【解决方案1】:

嗯。 @Brad Wilson 在asp.net forums 上回答了我的问题。

默认模板名称基于 CLR 类型名称,在本例中为 DateTime。 “日期”是 VB 中的快捷方式名称,而不是真正的类型名称(很像 C# 中的“int”实际上是 CLR 的“Int32”的快捷方式)

现在我明白了。谢谢@Brad

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    相关资源
    最近更新 更多