我有自定义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
根本不起作用。
感谢您的帮助。
最好的问候。
答案 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>