标签: mvcroutehandler

将自定义路由处理程序与 MVC5 属性路由一起使用

使用库AttributeRouting,我能够配置属性路由以使用自定义路由处理程序(继承MvcRouteHandler):

routes.MapAttributeRoutes(cfg =>
    {
        cfg.UseRouteHandler(() => new MultiCultureMvcRouteHandler());
    }
);
Run Code Online (Sandbox Code Playgroud)

此外,在 MVC5 之前,可以更改任何现有路由的路由处理程序:

(routes["myroute"] as Route).RouteHandler = new MyCustomRouteHandler();
Run Code Online (Sandbox Code Playgroud)

对于使用属性路由的 MVC5,路由集合包含内部类(RouteCollectionRoute例如)并且似乎不可能更改路由的RouteHandler属性。

如何更改在 MVC5.1 中使用属性路由时使用的默认路由处理程序?

asp.net-mvc mvcroutehandler ihttphandler attributerouting asp.net-mvc-5.1

6
推荐指数
1
解决办法
4008
查看次数

如何在MVC3的自定义路由处理程序中指定命名空间?

我写了一个自定义路由处理程序.因为我的网站中的区域中存在冲突的控制器名称,所以我收到错误:找到了多个匹配控制器命名的类型...

我想我需要在我的处理程序中指定一个命名空间,对吧?

我尝试了以下,没有一个工作:

public class MyRouteHandler : MvcRouteHandler
{
    protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
    {

        (... complicated DB lookups and "re-writing" of requestContext.RouteData.Values["controller"] ...)

        // doesn't work
        requestContext.RouteData.Values["namespaces"] = new[] { "Site.Contollers" };

        // doesn't work
        requestContext.RouteData.DataTokens.Add("namespaces", new[] { "Site.Contollers" });

        // doesn't work
        requestContext.RouteData.Values["namespaces"] = "Site.Contollers";

        // doesn't work
        requestContext.RouteData.DataTokens.Add("namespaces", "Site.Contollers");

        (... snip ...)

        return base.GetHttpHandler(requestContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

注意:因为我的处理程序执行数据库查找并根据结果选择不同的控制器,所以我不能在我的Global.asax.cs文件中使用基本的MapRoute()方法(据我所知).

asp.net-mvc namespaces mvcroutehandler asp.net-mvc-routing asp.net-mvc-areas

2
推荐指数
1
解决办法
3695
查看次数

使用ASP.net MVC从不同的目录路由静态文件,而不进行IIS更改和身份验证

让我留下来为我的应用程序的单个用户存储内容:

  • C:\文件{GUID} \

这些文件可能是这样的:

  • C:\文件{GUID}\bunny.jpg
  • C:\文件{GUID}\unicorn.html

最终用户应该看到一个"友好"的网址.

http:// domain.com/files/{GUID}/bunny.jpg

该URL必须以某种方式通过控制器或httpmodule或thingIdontknow才能被授权查看该文件.这些权限可能每天都在变化,因此需要经常检查文件的权限.

从我读过的内容来看,这完全是可能的,但我不确定接下来要编码什么,或者有人在这里有任何见解.HttpModule还是Controller?我很困惑需要发生什么.

asp.net-mvc mvcroutehandler httpmodule asp.net-mvc-routing asp.net-mvc-3

2
推荐指数
1
解决办法
3050
查看次数