gpt4 book ai didi

c# - 扩展 HtmlHelper 类 asp.net mvc4

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:57 24 4
gpt4 key购买 nike

我在扩展 HtmlHelper 类以呈现图像标记时遇到问题

这段代码是我写的

namespace Mace_CrmSystem
{
public static class ExtendedHelper
{
public static TagBuilder HaidarImage(this HtmlHelper instance, string src) {
TagBuilder inst = new TagBuilder("img");
inst.MergeAttribute("src", src);
return inst;
}
}
}

在索引 View 中我写了这段代码

@Html.HaidarImage("http://haidar.ws/wp-content/uploads/2014/07/ipaduse.jpg");

但问题是当 View 呈现标签时,它不会将其呈现为 Hrml 标签,而是将其呈现为普通文本,所以结果是这样的

 <img src="http://haidar.ws/wp-content/uploads/2014/07/ipaduse.jpg"></img>;

另一个问题是,我试图在 web.config 页面中添加命名空间以使其在所有页面上都可用,但智能感知不会显示扩展方法,直到我在 View 页面本身明确声明它。

所以请任何人帮助我解决我的问题。

最佳答案

您应该从 HtmlHelper 扩展方法返回一个 IHtmlString,这样输出就不会经过 HTML 编码,因为它是 HTML 标记,不应再次编码。例如

public static IHtmlString HaidarImage(this HtmlHelper instance, string src) 
{
TagBuilder inst = new TagBuilder("img");
inst.MergeAttribute("src", src);
return new HtmlString(inst.ToString(TagRenderMode.SelfClosing));
}

要修复所有 View 中可用的方法,您需要将类的命名空间添加到 Views 文件夹内的 web.config 中。

关于c# - 扩展 HtmlHelper 类 asp.net mvc4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com