2013-07-25 87 views
0

這是我如何嘗試創建自定義HTML助手並生成一個id爲 ,但是當我在剃鬚刀中使用標記時,我得到的所有標記都是相同的id渲染,有人幫我找到解決辦法。如何在mvc中爲自定義助手生成id

public static MvcHtmlString MyLabel(this HtmlHelper html, string text) 
     { 
      var builder = new TagBuilder("myLable"); 

      builder.GenerateId("MyLableId1"); 

      builder.SetInnerText(text); 
      return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal)); 
     } 

在剃刀

@using MvcAppCustomeHtmlHelpers.Helper; 
@Html.MyLabel("username") 
@Html.TextBox("username")<br/> 
@Html.MyLabel("password") 
@Html.TextBox("password") 

當我呈現文本框的id是其他文本框的用戶名和密碼,但我無法得到類似的id文本框中我custome HTML輔助

回答

1

只需傳遞一個參數「id」。

public static MvcHtmlString MyLabel(this HtmlHelper html, string text, string id) 
{ 
    var builder = new TagBuilder("myLable"); 
    builder.GenerateId(id);  
    builder.SetInnerText(text); 
    return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal)); 
} 

現在,你可以使用:

@Html.MyLabel("username", "label1") 
@Html.MyLabel("username", "label2") 
相關問題