Asp.net mvc 如何在mvc中为自定义助手生成id

Asp.net mvc 如何在mvc中为自定义助手生成id,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,这就是我如何创建自定义HTML帮助程序并为其生成id的方法 但是当我在剃须刀中使用标记时,当渲染时,所有标记的id都是相同的,有人可以帮助我找到解决方案 public static MvcHtmlString MyLabel(this HtmlHelper html, string text) { var builder = new TagBuilder("myLable"); builder.GenerateId("MyLabl

这就是我如何创建自定义HTML帮助程序并为其生成id的方法 但是当我在剃须刀中使用标记时,当渲染时,所有标记的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")
@使用MvcAppCustomeHtmlHelpers.Helper;
@Html.MyLabel(“用户名”)
@Html.TextBox(“用户名”)
@Html.MyLabel(“密码”) @文本框(“密码”)

当我呈现文本框时,id是其他文本框的用户名和密码,但我无法为我的custome html helper获取类似id的文本框

只需再传递一个参数“id”

现在,您可以使用:

@Html.MyLabel("username", "label1") 
@Html.MyLabel("username", "label2")   

您需要
TagBuilder.GenerateId

builder.GenerateId(text);
老实说,这并不是一个快速谷歌不能告诉你的:

builder.GenerateId(text);