gpt4 book ai didi

.net - MVC HTML Helper 自定义命名空间

转载 作者:行者123 更新时间:2023-12-05 00:04:58 24 4
gpt4 key购买 nike

我如何创建这样的东西:Html.MyApp.ActionLink()?
谢谢。

最佳答案

你不能这样做。添加到 Html 类的唯一方法是通过扩展方法。您不能添加“扩展属性”,这是您使用 Html.MyApp 所必需的。 .离你最近的是Html.MyApp().Method(...)您最好的选择可能是将它们作为扩展方法包含在 Html 中,或者完全创建一个新类(例如 MyAppHtml.Method(...)MyApp.Html.Method(...) )。最近有一篇博客文章专门展示了一个带有这些方法的“Html5”类,但不幸的是我的谷歌技能让我失望,我找不到它:(
根据评论中的要求,于 2011 年 10 月 13 日添加
做类似 Html.MyApp().ActionLink() 的事情您需要在 HtmlHelper 上创建扩展方法,它返回一个带有自定义方法的类的实例:

namespace MyHelper
{
public static class MyHelperStuff
{
// Extension method - adds a MyApp() method to HtmlHelper
public static MyHelpers MyApp(this HtmlHelper helper)
{
return new MyHelpers();
}
}

public class MyHelpers
{
public IHtmlString ActionLink(string blah)
{
// Wrap the html in an MvcHtmlString otherwise it'll be HtmlEncoded and displayed to the user as HTML :(
return new MvcHtmlString(string.Format("<a href=\"#\">{0}</a>", HttpUtility.HtmlEncode(blah)));
}
}
}
注意:您需要在 Web.config 中导入此类所在的命名空间,像这样:
<?xml version="1.0"?>
<configuration>
<system.web.webPages.razor>
<pages>
<namespaces>
<add namespace="MyHelper"/>
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
Web.Config 文件中的更改需要在 View 的配置文件中完成,而不是全局的

关于.net - MVC HTML Helper 自定义命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052777/

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