TagBuilder - 结束标签不起作用

时间:2015-02-25 10:04:36

标签: c# asp.net-mvc-4 razor tagbuilder

我有自定义html助手的问题。我尝试使用TagBuilder构建一个帮助器,但我无法关闭它。

这是我的代码:

 public static HtmlString CustomHelper(this HtmlHelper htmlHelper,
        string id)
    {
        var contentDiv = new TagBuilder("div");
        contentDiv.MergeAttribute("style", "display:inline-block");

        var input = new TagBuilder("input");
        input.AddCssClass("forDD");
        input.MergeAttribute("type", "hidden");
        input.MergeAttribute("id", id);
        input.MergeAttribute("value", "Cat");

        contentDiv.InnerHtml += input;


        return new HtmlString(contentDiv.ToString(TagRenderMode.EndTag));
    } 

但结果看起来像是:

enter image description here

出了点问题,但我找不到什么,我错过了。即使关闭input标记也是错误的。我已经检查了dll的版本,并尝试过使用MvcHtmlString等。此外TagRenderMode根本不起作用。

感谢您的帮助。

最好的问候。

1 个答案:

答案 0 :(得分:2)

试试这个,它对我有用。无需使用TagRenderMode.EndTag。

public  HtmlString CustomHelper(  string id)
        {
            var contentDiv = new TagBuilder("div");
            contentDiv.MergeAttribute("style", "display:inline-block"); 
            var input = new TagBuilder("input");
            input.AddCssClass("forDD");
            input.MergeAttribute("type", "hidden");
            input.MergeAttribute("id", id);
            input.MergeAttribute("value", "Cat"); 
            contentDiv.InnerHtml += input;
            return new HtmlString(contentDiv.ToString());
        } 

我的结果是

<div style="display:inline-block"><input class="forDD" id="3" type="hidden" value="Cat"></input></div>