【问题标题】:How can I remove the "type" attribute from Html.EditorFor?如何从 Html.EditorFor 中删除“类型”属性?
【发布时间】:2016-10-29 19:03:42
【问题描述】:

在我看来,我有一个Html.EditorFor 行:

@Html.EditorFor(model => model.DateCreditEarned, 
     new { htmlAttributes = new { @class = "form-control" } })

当我查看呈现的 HTML 时,我看到输入具有“type = date”属性。有什么方法可以使用 EditorFor 并删除 type 属性?这样我就可以拥有所需的功能而不会导致边缘问题。

<input 
    class="form-control datecontrol" 
    data-val="true" 
    data-val-date="The field Date Credit Earned must be a date." 
    data-val-required="The Date Credit Earned field is required."     
    id="DateCreditEarned" 
    name="DateCreditEarned" 
    type="date" value="6/27/2016">

更新

我发现我可以使用 Html.TextboxFor 而不会遇到任何 Edge 问题(即 Edge 用它自己的方式覆盖了我的 Bootstrap 日期选择器)。但我希望我能用 EditorFor 完成同样的事情。

【问题讨论】:

  • 你试过模型属性的[DataType(DataType.Text)]属性吗?
  • 直到你刚才提到它,我才尝试过。呈现的 HTML 是我需要的:&lt;input class="form-control text-box single-line" data-val="true" data-val-date="The field DateCreditEarned must be a date." data-val-required="The DateCreditEarned field is required." id="DateCreditEarned" name="DateCreditEarned" type="text" value="6/27/2016 12:04:42" /&gt;
  • TextBoxFor() 生成正确的html 时,为什么要使用EditorFor()
  • 纯粹的懒惰。我从 autoscaffolded 代码开始,所以我需要重新输入的次数越少,我就越喜欢它。

标签: asp.net-mvc razor


【解决方案1】:

好吧,让我的评论成为答案,在 ASP.NET MVC 中您通常在模型中以声明方式执行操作。在这种情况下,需要一个文本字段,因此使模型属性如下所示:

[DataType(DataType.Text)] 
public DateTime DateCreditEarned { get; set; }

解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2011-12-26
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多