我遇到了两个关于创建自定义html帮助程序的建议:扩展现有的帮助程序,或编写自己的类。
我更愿意保持自定义代码的分离,为一个体面的应用程序扩展帮助程序似乎有点草率。
但是我在扩展中看到的好处是'This HtmlHelper helper'作为参数传递,通过它我可以获得ViewContext.HtmlContext。
我的问题是,我如何推出自己的助手类并且仍然可以使用ViewContext.HtmlContext?
谢谢!
编辑: 我想要做的是创建“MyHelperClass”,它将一些自定义对象呈现为html。我没有看到需要“扩展”一个Html助手,因为我没有使用它提供给我的任何东西。我现在必须扩展htmlhelper的唯一原因是访问httpcontext,如您所示。但我的问题是,如何在我自己的类中访问httpcontext,而无需扩展现有的帮助器。谢谢
答案 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