如何阻止'id'标签自动插入我的代码中?

时间:2011-12-16 12:12:38

标签: javascript asp.net-mvc-3

我创建了局部视图,局部视图中的元素看起来像这样(Razor Code):

    <tr>
        <td>
            @Html.TextBoxFor(model => model.OtherReferenceNumber,new { @data_slmgui_name= "otherReferenceNumber", @style = "width: 45%" })

            @Html.ValidationMessageFor(model => model.OtherReferenceNumber)
        </td>
    </tr>

我不想使用id(在input标签上)。但是,当我查看页面源时,即使我没有添加它,也会显示该元素的id属性。任何人都可以向我解释为什么会出现这种情况,以及如何让它停止出现?

以下是实际的HTML输出:

  <tr>
        <td>
            <input data-slmgui-name="otherReferenceNumber" 
                   data-val="true" 
                   data-val-length="OtherReferenceNumber max length is 100" 
                   data-val-length-max="100" 
                   id="OtherReferenceNumber" 
                   name="OtherReferenceNumber" 
                   style="width: 45%;" 
                   value="hjghj" 
            type="text">              
        </td>
    </tr>

2 个答案:

答案 0 :(得分:4)

它们是由Asp.net Mvc自动生成的,以摆脱它们做到这一点

@Html.TextBoxFor(model => model.OtherReferenceNumber, new {id=""  /*more properties*/})

答案 1 :(得分:0)

HtmlHelpers,Html.TextBoxFor()甚至Html.TextBox将始终附加nameid,如果您希望对其进行更多控制,则可以轻松使用{{ 1}}

就像:

<input type="text" ...>

但是,请注意,如果没有<input type="text" val="@Model.OtherReferenceNumber" data-slmgui-name="otherReferenceNumber" style="width: 45%" /> name,您将永远无法在Action中获取模型,并且需要浏览id对象。

我建议你在承诺“不要使用id”部分之前看一些视频教程......

通过ASP.NET网站微软要求PluralSight开设这方面的课程,并且你的处置有full MVC course for free ...