1

我对自定义 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));
    } 

但它的结果看起来像:

在此处输入图像描述

出了点问题,但我不知道是什么,我错过了。即使是结束input标签也是错误的。我检查了 dll 的版本并尝试使用 MvcHtmlString 等。也TagRenderMode根本不起作用。

谢谢您的帮助。

此致。

4

1 回答 1

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>
于 2015-02-25T10:23:03.480 回答