【问题标题】:ASP.NET MVC 5.1.x EditorFor BugASP.NET MVC 5.1.x EditorFor Bug
【发布时间】:2014-04-07 14:59:12
【问题描述】:

如果带有 htmlAttributes 的新 EditorFor 不适合你,我发现如下:

    public bool BoolTest { get; set; }
    public string StringTest { get; set; }
    public int IntTest { get; set; }
    public decimal DecimalTest { get; set; }
    public float FloatTest { get; set; }
    public char CharTest { get; set; }
    public DateTime DateTimeTest { get; set; }
    public TimeSpan TimeSpanTest { get; set; }

// WORKS
    @Html.EditorFor(model => model.BoolTest, new { htmlAttributes = new { @class = "form-control bool" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.StringTest, new { htmlAttributes = new { @class = "form-control string" } })
// WORKS
    @Html.EditorFor(model => model.IntTest, new { htmlAttributes = new { @class = "form-control int" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.DecimalTest, new { htmlAttributes = new { @class = "form-control decimal" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.FloatTest, new { htmlAttributes = new { @class = "form-control float" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.CharTest, new { htmlAttributes = new { @class = "form-control char" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.DateTimeTest, new { htmlAttributes = new { @class = "form-control DateTime" } })
// DOESN'T WORK!
    @Html.EditorFor(model => model.TimeSpanTest, new { htmlAttributes = new { @class = "form-control TimeSpan" } })


工作的意思:输入是按预期添加的附加 htmlAttributes 呈现的。

不起作用的意思是:输入被渲染,但没有 htmlAttributes 被传递到 html。


结果 HTML:
<input class="form-control bool check-box" data-val="true" data-val-required="The BoolTest field is required." id="BoolTest" name="BoolTest" type="checkbox" value="true">

<input name="BoolTest" type="hidden" value="false">

<input class="text-box single-line" id="StringTest" name="StringTest" placeholder="" type="text" value="">

<input class="form-control int text-box single-line valid" data-val="true" data-val-number="The field IntTest must be a number." data-val-required="The IntTest field is required." id="IntTest" name="IntTest" type="number" value="0">

<input class="text-box single-line" data-val="true" data-val-number="The field DecimalTest must be a number." data-val-required="The DecimalTest field is required." id="DecimalTest" name="DecimalTest" type="text" value="0.00">

<input class="text-box single-line" data-val="true" data-val-number="The field FloatTest must be a number." data-val-required="The FloatTest field is required." id="FloatTest" name="FloatTest" placeholder="" type="text" value="0">

<input class="text-box single-line" data-val="true" data-val-required="The CharTest field is required." id="CharTest" name="CharTest" placeholder="" type="text" value="�">

<input class="datefield" data-val="true" data-val-date="The field DateTimeTest must be a date." data-val-required="The DateTimeTest field is required." id="DateTimeTest" name="DateTimeTest" type="text" value="1/1/0001">

<input class="text-box single-line" data-val="true" data-val-required="The TimeSpanTest field is required." id="TimeSpanTest" name="TimeSpanTest" placeholder="" type="text" value="00:00:00">

有人找到解决方法吗?我应该在哪里提交错误? (如果有人确认它不是我的机器,那就太好了)

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5


    【解决方案1】:

    发现我有旧的 EditorTemplates 用于那些不考虑新 htmlAttributes 的原语。

    把“问题”留在这里,这样如果有人发现自己处于同样的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多