首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在加载时将TagBuilder添加到视图

如何在加载时将TagBuilder添加到视图
EN

Stack Overflow用户
提问于 2019-02-15 07:07:11
回答 2查看 33关注 0票数 0

我正在尝试使用TagBuilder添加一个选项标签。但是我不知道如何将标签生成器写到视图中。

代码:

代码语言:javascript
复制
@foreach (IActivityType at in _data.Context.ActivityType)
{
    TagBuilder opt = new TagBuilder("option");
    opt.Attributes.Add("value", at.Id.ToString());

    if (at.Id.Equals(activity.ActivityTypeId))
    {
        opt.Attributes.Add("selected", "selected");
    }

    @Html.Raw(opt);
}
EN

回答 2

Stack Overflow用户

发布于 2019-02-15 07:13:43

试一试

代码语言:javascript
复制
@Html.Raw(opt.ToString(TagRenderMode.Normal));

PS:您可能需要使用带有option标签的SetInnerText()

还请记住,更好的方法是创建自定义HTML Helper并相应地使用它。Check This Link

票数 2
EN

Stack Overflow用户

发布于 2019-02-15 14:45:30

所以最终得到了一个很好的小解决方案,它有一个IHtmlContent扩展,它返回一个html形式的标签。

代码语言:javascript
复制
public static string ToZtring(this IHtmlContent content, bool encode = false)
{
    string result = default;

    using (StringWriter sw = new StringWriter())
    {
        content.WriteTo(sw, HtmlEncoder.Default);

        result = sw.ToString();
    }

    if (!encode)
    {
        result = HttpUtility.HtmlDecode(result);
    }

    return result;
}

TagBuilder opt = new TagBuilder("option");
opt.Attributes.Add("value", "demo");

@Html.Raw(opt.ToZtring());

我调用了ToZstring()的扩展方法来避免ToString()的命名问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54700487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档