首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET Routing可用于为.ashx(IHttpHander)处理程序创建"干净"的URL吗?

当然可以。ASP.NET Routing 是一个功能强大的 URL 映射框架,它允许您为 .ashx(IHttpHander) 处理程序创建干净、友好的 URL。ASP.NET Routing 可以让您轻松地定义 URL 模式,并将其映射到特定的处理程序。这样,您可以避免使用不友好的 URL,如包含查询字符串的 URL,从而提高应用程序的可读性和易用性。

以下是如何为 .ashx(IHttpHander) 处理程序创建干净 URL 的示例:

  1. 首先,在您的应用程序中启用 ASP.NET Routing。这可以通过在应用程序的 Web.config 文件中添加以下代码来完成:
代码语言:xml<system.web>
复制
  <urlRouting enabled="true" />
</system.web>
  1. 接下来,在您的应用程序中定义一个新的路由。这可以通过在 Global.asax 文件中的 Application_Start 方法中添加以下代码来完成:
代码语言:csharp
复制
void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("MyHandlerRoute", "myhandler/{action}", "~/myhandler.ashx");
}

在上面的示例中,我们定义了一个名为 "MyHandlerRoute" 的新路由,它将 URL 模式 "myhandler/{action}" 映射到 "~/myhandler.ashx" 处理程序。

  1. 最后,在您的 .ashx(IHttpHander) 处理程序中,您可以使用 HttpContext.Current.Request.RequestContext.RouteData 属性来访问路由参数。例如,您可以使用以下代码来获取 "action" 参数的值:
代码语言:csharp
复制
string action = HttpContext.Current.Request.RequestContext.RouteData.Values["action"].ToString();

通过使用 ASP.NET Routing,您可以为 .ashx(IHttpHander) 处理程序创建干净、友好的 URL,从而提高应用程序的可读性和易用性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在Global.asax中获取Session的注意事项

    几年前给朋友珠宝公司开发过一套旺财珠宝库存管理系统,用得还是web Form老技术,但是更多的走Ashx+Ajax,但前端可是HTML5+jQuery+BootStrap等新技术,所以不论功能还是用户体验,都能很完美的满足用户要求(用户才不管你用的是什么技术,先进的和古老的都必须解决他的问题,然后还需要好用)。近期特别反馈说有些页面比较慢,我觉得用了几年了,数据库就近2个G了,可能是数据库查询的问题,也可能是程序执行的问题,也可能用户网络问题。数据库可以在服务器上用Sql Server Profiler进行查询分析,但页面上还得做点跟踪。于是就用Global.asax来实现,本来很方便的,但为了获取当前登录用户,需要在Global.asax中获取Session,花了点时间才搞定,记录下来分享一下。

    02

    第 11 节: 11-HttpHandler简介

    1、新建--》项目--》选中Web项--》Asp.net空Web应用程序--》右键项目---》添加---》一般处理程序(这样建的网站是最好的方法,没有多余的代码生成) 2、新建--》网站--》Asp.net空网站(这是兼容ASP(VB语言 2000年的技术)开发方式)(不推荐用这种方式) 3、.ashx与ashx.cs文件 1)双击ashx文件会直接打开进入ash.cs文件。 2)类Test1实现了IHttpHandler 接口。IHttpHandler接口中的方法在类Test1中进行了重写(页面加载的过程应该是完成了:Shift+Alt+F10) 3)ashx文件中起作用的就是<....Class="Web.Test1">这个。 4)然后会调用这个Test1类中的方法ProcessRequest(HttpContext context):这个方法主要是处理页面的请求。 5)context.Response设置“响应”“context.Request获取“请求” 6)ashx.cs文件其实还是C#文件。网页逻辑编写。主要是这个文件

    01

    ASP.NET页面周期学习笔记之一

    ASP.NET页面生命周期——理解:重中之重!!! 1.基本概念:所谓的页面生命周期,指的是一个ASP.NET页面类对象从初始化到销毁经过的步凑过程; 2.大致步凑: (1)初始化:PreInit,Init,InitComplete (2)加载数据和页面:LoadState,ProcessPostData,PreLoad,Load,ProcessPostData(第二次)... (3)触发事件:ChangedEvents PostBackEvent (4)保存状态并呈现页面:SaveState,SaveStateComplete,Render 3.步凑详解: ProcessRequestMain-> PreInit-PerfromPreInit()->预初始化:准备初始化页面控件,设置皮肤; Init-InitRecursive(null)->页面对象初始化; InitComplete(OnInitComplete-EventArgs.Empty)->页面对象初始化完成:加载ViewState,还原控件状态,登记用户触发的事件; if(this.IsPostBack) {    LoadState-LoadAllState():加载ViewState->ProcessPostData-ProcessPostData(this._requestValueCollection,true):还原控件状态 } ->PreLoad-OnPreLoad(EventArgs.Empty)->Load-LoadRecursive()-> if(this.IsPostBack) {    ProcessPostData Second Try-ProcessPostData(this._leftoverPostData,false)->Raise ChangedEvents-RaiseChangedEvents()->Raise PostBackEvent -RaisePostBackEvent(this._requestValueCollection);):触发控件事件 } ->SaveStateComplete-OnSaveStateComplete(EventArgs.Empty):保存页面和控件数据到ViewState-> Render->RenderControl(this.CreateHtmlTextWriter(this.Response.Output)):生成最终HTML代码

    03
    领券