TagBuilder添加没有值的属性

时间:2014-12-30 07:05:10

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

同样的问题来自这里。

How to add attribute without value

这一次,我想用AngularJS属性创建一个输入,将其用作指令。

这就是我想要的:

<input ng-angular-abc />

这是TagBuilder生成的内容:

<input ng-angular-abc=""/>

我试过这个,但都没有用:

tagBuilder.MergeAttribute("ng-angular-abc", "");
tagBuilder.MergeAttribute("ng-angular-abc", null);
tagBuilder.MergeAttribute("ng-angular-abc", "ng-angular-abc");

2 个答案:

答案 0 :(得分:1)

这不是您所需要的,但您可以创建一个帮助方法来生成标记 -

namespace YourNamespace
{
    public static class CustomHelpers
    {
        public static MvcHtmlString TextboxWithProperty(this HtmlHelper html, string property)
        {
            StringBuilder result = new StringBuilder();
            result.AppendFormat("<input {0} />", property);
            return MvcHtmlString.Create(result.ToString());
        }
    }
}

并在您的视图中调用它 -

@using YourNamespace
...
...
...
@Html.TextboxWithProperty("ng-angular-abc")

答案 1 :(得分:1)

另一种方法是使用Razor助手在您的App_Code目录中创建Helpers.cshtml文件。你的帮手想要这个

@helper InputNg() {
    <input ng-angular-abc />
}

要在剃须刀视图中访问帮助程序,只需使用文件名,然后使用如下所示的方法:

@Helpers.InputNg()

它可以让您更好地控制HTML。