如何在 ASP.NET MVC 中创建自定义助手?

发布于 2024-10-25 21:36:51 字数 907 浏览 5 评论 0原文

我在静态链接助手论坛上问了这个问题,但没有得到答案然而。所以我决定创建自己的助手。

我正在尝试为静态链接创建一个助手

<a href='xx'>yy</a>

,但正在显示 HTML 代码。

使用:

<div>
@Html.Link("www.google.com", "Google")
</div>

结果:

<a href="www.google.com">Google</a> 

查看我的课程:

public static class BindHelper
{
    public static TagBuilder Link(this HtmlHelper helper, string targetUrl, string text)
    {
        TagBuilder imglink = new TagBuilder("a");
        imglink.MergeAttribute("href", targetUrl);
        imglink.InnerHtml = text;
        return imglink;
    }
}

如何创建我自己的助手? 已经在多个网站和一些扩展的网站上进行了研究,该方法在其他类 TagBuilder 中返回一个字符串,但两种方式都在页面上显示 HTML 代码

I asked this question here on the forum for static link helper, but I got no answers yet. So I decided to create my own helper.

I'm trying to create a helper for a static link

<a href='xx'>yy</a>

but is displaying the HTML code.

Using:

<div>
@Html.Link("www.google.com", "Google")
</div>

Result:

<a href="www.google.com">Google</a> 

See my class:

public static class BindHelper
{
    public static TagBuilder Link(this HtmlHelper helper, string targetUrl, string text)
    {
        TagBuilder imglink = new TagBuilder("a");
        imglink.MergeAttribute("href", targetUrl);
        imglink.InnerHtml = text;
        return imglink;
    }
}

How to create my own helper?
Already researched on several sites and some extended the method returns a string in the other class TagBuilder but both ways it displays the HTML code on page

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑寡妇 2024-11-01 21:36:51

返回一个 MvcHtmlString。这就是 MVC 内部所做的事情。它(在某种程度上)实现了 IHtmlString 告诉 HTML 编码器不要重新编码该值。

还将您的命名空间添加到 web.config 的构建配置部分。

Return an MvcHtmlString. That is what MVC does internally. It (somewhat) implements IHtmlString which tells the HTML encoder not to reencode the value.

Also add your namespace to the build configuration section of the web.config.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文