如何在javascript asp.net mvc中向html.label添加内容

时间:2011-07-25 10:18:18

标签: asp.net-mvc asp.net-mvc-2

我有一个标签 <%= Html.Label(“”);%> 我想在运行时向标签添加内容,遗憾的是它不需要任何其他参数来为它创建id属性。我不能为它创建id属性,就像asp:label

感谢,

michaeld

2 个答案:

答案 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