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

.net – MVC HTML Helper自定义命名空间,第1张

概述我怎么能创建这样的东西: Html.MyApp.ActionLink()? 谢谢. 你不能这样做.您可以添加到Html类的唯一方法是通过扩展方法.您无法添加“扩展属性”,这是您使用Html.MyApp所需的.你最接近的是Html.MyApp().方法(…) 你最好的选择可能是将它们作为扩展方法包含在Html中,或者完全创建一个新类(例如MyAppHtml.Method(…)或MyApp.Html. 我怎么能创建这样的东西: Html.MyApp.Actionlink()?
谢谢.解决方法 你不能这样做.您可以添加到HTML类的唯一方法是通过扩展方法.您无法添加“扩展属性”,这是您使用HTML.MyApp所需的.你最接近的是HTML.MyApp().方法(…)

你最好的选择可能是将它们作为扩展方法包含在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>
总结

以上是内存溢出为你收集整理的.net – MVC HTML Helper自定义命名空间全部内容,希望文章能够帮你解决.net – MVC HTML Helper自定义命名空间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存