Asp.net mvc 4 如何使用热毛巾mvc4使一瞥有效?

Asp.net mvc 4 如何使用热毛巾mvc4使一瞥有效?,asp.net-mvc-4,hottowel,glimpse,Asp.net Mvc 4,Hottowel,Glimpse,我想将一瞥诊断工具添加到我的mvc4热毛巾项目中 我按照指示,并在我的项目中安装mvc4 nuget包的一瞥 它正在正确安装、获取依赖项并更新web.config,如下所示 <httpModules> <add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" /> </httpModules> <httpHandlers> <add path="glimp

我想将一瞥诊断工具添加到我的mvc4热毛巾项目中

我按照指示,并在我的项目中安装mvc4 nuget包的一瞥

它正在正确安装、获取依赖项并更新web.config,如下所示

<httpModules>
  <add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" />
</httpModules>
<httpHandlers>
  <add path="glimpse.axd" verb="GET" type="Glimpse.AspNet.HttpHandler, Glimpse.AspNet" />
</httpHandlers>

找不到skillip.axd的原因是路由的配置顺序

如果安装,您将看到另一个路由处理scape.axd请求,即热毛巾模板安装的路由,可以在类HotTowerRouteConfig的App_Start文件夹中找到

并在调用routes.IgnoreRoute{resource}.axd/{*pathInfo}后,通过调用HotTowerRouteConfig.RegisterHotTowelPreStart在RouteConfig.RegisterRoutes中显式注册路由;这样,默认情况下您仍然可以使用该示例,并且scape.axd将按预期进行处理


无论哪种方式,这两个选项都涉及删除或更改由HotTower NuGet软件包管理的文件,因此,可能该示例应该放在其自己的NuGet软件包中。您不想将该示例投入生产。例如,找不到Spile.axd的原因是由于路由配置的顺序

如果安装,您将看到另一个路由处理scape.axd请求,即热毛巾模板安装的路由,可以在类HotTowerRouteConfig的App_Start文件夹中找到

并在调用routes.IgnoreRoute{resource}.axd/{*pathInfo}后,通过调用HotTowerRouteConfig.RegisterHotTowelPreStart在RouteConfig.RegisterRoutes中显式注册路由;这样,默认情况下您仍然可以使用该示例,并且scape.axd将按预期进行处理


无论哪种方式,这两个选项都涉及删除或更改由HotTower NuGet软件包管理的文件,因此,可能该示例应该放在其自己的NuGet软件包中—您不想将该示例投入生产—例如,签入到该软件包中的最新源代码的处理方式略有不同

在HotTowerRouteConfig中,RegisterHotTowlPreStart函数更改为:

public static void RegisterHotTowelPreStart() {

  // Ignore requests to .axd HttpHandlers
  System.Web.Routing.RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  // Preempt standard default MVC page routing to go to HotTowel Sample
  System.Web.Routing.RouteTable.Routes.MapRoute(
      name: "HotTowelMvc",
      url: "{controller}/{action}/{id}",
      defaults: new
      {
          controller = "HotTowel",
          action = "Index",
          id = UrlParameter.Optional
      }
  );

这允许axd include scape.axd工作,方法是将它们从示例处理中排除。

检入到处理中的最新源代码与此略有不同

在HotTowerRouteConfig中,RegisterHotTowlPreStart函数更改为:

public static void RegisterHotTowelPreStart() {

  // Ignore requests to .axd HttpHandlers
  System.Web.Routing.RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  // Preempt standard default MVC page routing to go to HotTowel Sample
  System.Web.Routing.RouteTable.Routes.MapRoute(
      name: "HotTowelMvc",
      url: "{controller}/{action}/{id}",
      defaults: new
      {
          controller = "HotTowel",
          action = "Index",
          id = UrlParameter.Optional
      }
  );
这允许axd(包括scape.axd)工作,方法是将它们排除在样本处理之外

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Load", action = "Index", id = UrlParameter.Optional }
        );
    }
using System.Web.Mvc;

[assembly: WebActivator.PreApplicationStartMethod(
    typeof(throwaway.App_Start.HotTowelRouteConfig), "RegisterHotTowelPreStart", Order = 2)]

namespace throwaway.App_Start {
  ///<summary>
  /// Inserts the HotTowel SPA sample view controller to the front of all MVC routes
  /// so that the HotTowel SPA sample becomes the default page.
  ///</summary>
  ///<remarks>
  /// This class is discovered and run during startup
  /// http://blogs.msdn.com/b/davidebb/archive/2010/10/11/light-up-your-nupacks-with-startup-code-and-webactivator.aspx
  ///</remarks>
  public static class HotTowelRouteConfig {

    public static void RegisterHotTowelPreStart() {

      // Preempt standard default MVC page routing to go to HotTowel Sample
      System.Web.Routing.RouteTable.Routes.MapRoute(
          name: "HotTowelMvc",
          url: "{controller}/{action}/{id}",
          defaults: new
          {
              controller = "HotTowel",
              action = "Index",
              id = UrlParameter.Optional
          }
      );
    }
  }
}
[assembly: WebActivator.PreApplicationStartMethod(
    typeof(throwaway.App_Start.HotTowelRouteConfig), "RegisterHotTowelPreStart", Order = 2)]
public static void RegisterHotTowelPreStart() {

  // Ignore requests to .axd HttpHandlers
  System.Web.Routing.RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  // Preempt standard default MVC page routing to go to HotTowel Sample
  System.Web.Routing.RouteTable.Routes.MapRoute(
      name: "HotTowelMvc",
      url: "{controller}/{action}/{id}",
      defaults: new
      {
          controller = "HotTowel",
          action = "Index",
          id = UrlParameter.Optional
      }
  );