如何强制Razor不生成额外的html属性

如何强制Razor不生成额外的html属性,html,razor,razor-2,Html,Razor,Razor 2,更新1: 正如有人在下面提到的关闭jQuery不引人注目的验证,我已经将这些js文件移到了cshtml页面上 <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> <script src="~/Scripts/jquery.validate.js"></script> <script src="~/Scripts/jquery.validate-vsdoc.js">&l

更新1:

正如有人在下面提到的关闭jQuery不引人注目的验证,我已经将这些js文件移到了cshtml页面上

<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate-vsdoc.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

但问题依然存在


我使用的是Razor(我想是第二版)+Twitter引导

我的页面上有一个日期时间选择器,它需要一个文本框输入

由于纯html无法将用户输入的值绑定到相关属性,因此我必须使用Razor html helper。 下面是在页面上输入文本框的两种方法

  <input type='text' class="form-control" />

  @Html.TextBoxFor(m => m.event_date_time, new { @class = "form-control", placeholder = "Enter date and time" })

@TextBoxFor(m=>m.event\u date\u time,新的{@class=“form control”,placeholder=“Enter date and time”})
但是Razor助手似乎为自己的验证目的生成了额外的html属性,这些属性干扰了引导程序以正确显示日期时间选择器

请看一下Razor html助手生成的html代码

<input class="form-control valid" data-val="true" data-val-date="The field event_date_time must be a date." data-val-required="The event_date_time field is required." id="event_date_time" name="event_date_time" placeholder="Enter date and time" type="text" value="1/1/0001 12:00:00 AM">

现在我的问题是:如何强制Razor Helper不生成额外的html属性


非常感谢

我找到了一个解决方法和奇怪的解决方案

只需保留我的html控件和Razor helper,然后设置html控件:display:none; 然后,Razor生成的文本框将与日期时间选择器一起工作。 我知道这很奇怪,但我不知道为什么它会起作用

下面是代码:

 <input type='text' class="form-control" style="display:none;"/>

  @Html.TextBoxFor(m => m.event_date_time, new { @class = "form-control", placeholder = "Enter date and time" })

@TextBoxFor(m=>m.event\u date\u time,新的{@class=“form control”,placeholder=“Enter date and time”})
我将把答案留在这里几天,看看是否有人能弄明白为什么它会以这种方式工作,以及正确的方式是什么


非常感谢。

看起来您启用了非结构化验证。您是要完全禁用验证还是仅针对这种特殊情况禁用验证?当然纯html可以绑定。只需将文本框的id设置为“event\u date\u time”。您始终可以选择使用纯html而不是razor@BabakNaffas嗨,巴巴克,请看我的更新1。thx@malik嗨,Malik,文本框的ID必须与模型中的属性名称完全相同吗?@Franva,是的。无论您在视图source/firebug/etc中看到什么,都是razor助手创建的。因此,您可以复制该html,删除其中不需要的内容,并在cshtml文件中使用它。但是对于一些东西,比如验证,这些额外的
数据-*
东西是它们工作所必需的。