我有一个标签 <%= Html.Label(“”);%> 我想在运行时向标签添加内容,遗憾的是它不需要任何其他参数来为它创建id属性。我不能为它创建id属性,就像asp:label
感谢,
michaeld
答案 0 :(得分:2)
如果它们不符合您的需要,则无需始终在任何地方使用HtmlHelper功能。他们只是想让你的生活更轻松,而不是更难。在这里使用好的HTML:
<label id="id_for_label"></label>
答案 1 :(得分:0)
如果您想继续使用HtmlHelper函数,您可以随时创建自己的扩展方法。
例如:
public static class LabelHelper
{
private static string HtmlAttributes(object htmlAttributes)
{
var builder = new StringBuilder();
foreach (PropertyDescriptor descriptor in
TypeDescriptor.GetProperties(htmlAttributes))
{
builder.AppendFormat(" {0}=\"{1}\" ", descriptor.Name,
descriptor.GetValue(htmlAttributes));
}
return builder.ToString();
}
public static MvcHtmlString MyLabel(this HtmlHelper htmlHelper,
string labelText, object htmlAttributes)
{
var attributes = HtmlAttributes(htmlAttributes);
return MvcHtmlString.Create(
String.Format("<label for=\"{0}\" {1}>{0}</label",
labelText, attributes.Trim()));
}
}
然后,您可以按以下方式向视图添加标签:
<%: Html.MyLabel("Hello, World!", new { @id = "myLabel" })%>
生成的HTML是:
<label for="Hello, World!" id="myLabel">Hello, World!</label>
对于MVC 3,这样的辅助函数已经可用:
http://msdn.microsoft.com/en-us/library/gg538318(v=VS.99).aspx