2011-12-16 32 views
1

我創建了一個局部視圖,在局部視圖元素看起來像這樣(剃刀碼):如何阻止'id'標籤被自動插入到我的代碼中?

<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> 
+0

你正在使用`Html`助手,所以它已被自動添加給你,你可以使用自己的助手或編輯原來的,他們是簡單的T4模板。 – balexandre 2011-12-16 12:22:56

回答

5

他們被Asp.net的mvc自動生成擺脫他們做到這一點

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

非常感謝。我的問題解決了.. – 2011-12-16 12:31:54

0

的HtmlHelpers,Html.TextBoxFor()甚至Html.TextBox總會附加nameid,如果你想對它有更多的控制,你可以很容易地使用<input type="text" ...>

就像:

<input type="text" 
     val="@Model.OtherReferenceNumber" 
     data-slmgui-name="otherReferenceNumber" 
     style="width: 45%" /> 

但是,請記住,如果沒有nameid你將永遠不會得到模型在行動,你需要通過FormsCollection對象進行導航。

我建議你看到一些視頻教程,你承諾「不wnat使用的ID」部分之前...

通過ASP.NET網站微軟要求PluralSight有自己對這個課程,你有一個full MVC course for free在你的處置...

相關問題