MVC 中,为我自己的 IHttpHandler 派生类指定路由
我的 MVC 4 Web 程序中,自定义了一个 LicenceCenterHandler : IHttpHandler,并为它定义了一个路由工厂:
当我在 RegisterRoutes() 中加入这个路由:
我所有视图页面中,凡是以 @Url.Action() 和 @Html.ActionLink() 生成的链接,则都带上了 "http://localhost:13230/ac/licencecenter" 这个路径,而两个函数中的参数,则都变成了 ?action=&controller= 这等字样
为什么如此? 我的目的是,要在我的网站中,处理来自一个桌面客户端程序的加密二进制数据,返回给客户端的也是加密的二进制数据,那么在 MVC 中,有什么别的办法处理 二进制数据 的进出吗?
public class LCRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler( RequestContext rc )
{
return new LicenceCenterHandler(); // 返回 IHttpHandler 派生类的实例
}
}当我在 RegisterRoutes() 中加入这个路由:
public static void RegisterRoutes( RouteCollection routes )
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add( "ac", new Route( "ac/licencecenter", new LCRouteHandler() ) );
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}我所有视图页面中,凡是以 @Url.Action() 和 @Html.ActionLink() 生成的链接,则都带上了 "http://localhost:13230/ac/licencecenter" 这个路径,而两个函数中的参数,则都变成了 ?action=&controller= 这等字样
为什么如此? 我的目的是,要在我的网站中,处理来自一个桌面客户端程序的加密二进制数据,返回给客户端的也是加密的二进制数据,那么在 MVC 中,有什么别的办法处理 二进制数据 的进出吗?
...全文
相关推荐
asp.net mvc路由篇 如何找到 IHttpHandler方法介绍
"本文将深入探讨ASP.NET MVC中的路由机制,特别是如何找到并执行IHttpHandler方法。我们将从源代码的角度出发,分析UrlRoutingModule类在路由处理中的关键作用。"在A
MVC路由机制
#### 三、总结MVC路由机制是MVC架构中的重要组成部分,它负责将用户的请求映射到正确的控制器和动作。
ASP.NET 4.0 HttpHandler路由支持
然后,可以使用`RouteTable.Routes.Add`方法添加一个新的路由,指定一个URL模板和处理该路由的IHttpHandler。
针对Linux ASP.NET MVC网站中httpHandlers配置无效的解决方案.docx
这是因为MVC框架采用不同的机制来路由请求,不同于传统的WebForms。
ASP.NET MVC 从IHttp到页面输出的实例代码
"ASP.NET MVC 从IHttp到页面输出的实例代码展示了如何在ASP.NET MVC框架中处理HTTP请求并将其转换为最终的页面输出。这个过程涉及到IHttpHandler接口的实现,以及Co


