【问题标题】:EditorTemplate for DataType.Time won't be applied不会应用 DataType.Time 的 EditorTemplate
【发布时间】:2017-01-25 16:34:49
【问题描述】:

我有一个从那里我想有一个开始和结束时间的编辑器。

所以我在路径“Views/Shared/EditorTemplates/Time.cshtml”中创建了一个EditorTemplate

@model string
 @{
  var htmlAttributes = this.GetControlHtmlAttributes();
        htmlAttributes.AddClass("time");
        htmlAttributes.AddAttribute("style", "background-color: fuchsia");
    }
@Html.TextBoxFor(m => m, htmlAttributes: htmlAttributes)

在我看来,我叫

<td>
    @Html.EditorFor(m => m[i].kal_von)
</td>
<td>
    @Html.EditorFor(m => m[i].kal_bis)
</td>

(请注意:如果我这样称呼它是行不通的:

<td>
    @Html.EditorFor(m => m[i].kal_bis, "Time")
</td>

)

模型看起来像这样:

[StringLength(5)][DataType(DataType.Time)][DataMember(EmitDefaultValue = false)]
[DisplayNameAttribute("d_kal_termin.kal_von")]
public string kal_von { get; set; }

[StringLength(5)][DataType(DataType.Time)][DataMember(EmitDefaultValue = false)]
[DisplayNameAttribute("d_kal_termin.kal_bis")]
public string kal_bis { get; set; }

谢谢!!

【问题讨论】:

    标签: c# asp.net razor mvc-editor-templates


    【解决方案1】:

    您的代码中有类似的内容吗?在哪里替换默认的 RazorViewEngine?

    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new AppRazorViewEngine());
    

    如果是这样,请确保您的自定义 ViewEngine 包含 EditorTemplates 目录的路径。

    【讨论】:

      【解决方案2】:

      您需要将 UIHint 添加到您的模型中

      [StringLength(5)]
      [DataType(DataType.Time)]
      [DataMember(EmitDefaultValue = false)]
      [UIHint("Time")]
      [DisplayNameAttribute("d_kal_termin.kal_von")]
      public string kal_von { get; set; }
      
      [StringLength(5)]
      [DataType(DataType.Time)]
      [DataMember(EmitDefaultValue = false)]
      [UIHint("Time")]
      [DisplayNameAttribute("d_kal_termin.kal_bis")]
      public string kal_bis { get; set; }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 2021-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多