mvc创建我自己的html帮助器,如何访问httpcontext?

时间:2010-04-22 19:44:34

标签: asp.net-mvc

我遇到了两个关于创建自定义html帮助程序的建议:扩展现有的帮助程序,或编写自己的类。

我更愿意保持自定义代码的分离,为一个体面的应用程序扩展帮助程序似乎有点草率。

但是我在扩展中看到的好处是'This HtmlHelper helper'作为参数传递,通过它我可以获得ViewContext.HtmlContext。

我的问题是,我如何推出自己的助手类并且仍然可以使用ViewContext.HtmlContext?

谢谢!

编辑:  我想要做的是创建“MyHelperClass”,它将一些自定义对象呈现为html。我没有看到需要“扩展”一个Html助手,因为我没有使用它提供给我的任何东西。我现在必须扩展htmlhelper的唯一原因是访问httpcontext,如您所示。但我的问题是,如何在我自己的类中访问httpcontext,而无需扩展现有的帮助器。谢谢

2 个答案:

答案 0 :(得分:12)

public static class HtmlHelperExtensions
{
    public static HttpContextBase GetContext(this HtmlHelper htmlHelper)
    {
        return htmlHelper.ViewContext.HttpContext;
    }
}

答案 1 :(得分:1)

您也可以使用:System.Web.HttpContext.Current.Request.RequestContext