这就是我尝试创建自定义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")
当我渲染文本框时,id是其他文本框的用户名和密码,但我无法为我的客户html助手获取id文本框
答案 0 :(得分:2)
再传递一个参数“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")
答案 1 :(得分:0)
您想要TagBuilder.GenerateId
:
builder.GenerateId(text);
老实说,这不是一个快速的谷歌不能告诉你的: