首页
学习
活动
专区
工具
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,从而提高应用程序的可读性和易用性。

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

相关·内容

.NETASP.NET Routing路由(深入解析路由系统架构原理)

ASP.NET管道模型基础之上的,所以相比其他一些陌生的概念会轻松很多,不过不要紧一回生二回熟; ASP.NET Routing 系统是一切通过ASP.NET进行Uri访问应用程序的基础(并非物理文件的直接映射...,然而我们的ASP.NETMVC也是一种通过独立的Uri进行程序访问处理的框架,所以也是建立在ASP.NET Routing;再者就是现在也比较热门的ASP.NET技术(ASP.NETWEBAPI);都是建立在...IHttpHander类型,只有阻止原本默认的IHttpHander接口创建才有可能改变整个的处理流程; 图2.1: ?...那么Routing只有在阻止IHttpHander接口的创建前先执行,才能扭转整个处理路线的机会,上图中显示的Application Event(2)(IHttpHander执行)意思是说只有在IHttpHander...此图总结了我们到目前为止的一个基本思路,底层ASP.NET框架处理HTTP的对象化,然后通过ASP.NETRouting Module创建IHttpHandler接口对象,再然后就是执行IHttpHander

1.6K90

ASP.NET MVC 重点教程一周年版 第二回 UrlRouting

使用UrlRouting,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容. 当然,这个创建的规则完全是由你自己定义的.....mvc,.aspx也要检查文件存在 // 变通方法为可以将.mvc换成.ashx或.asbx public static void RegisterRoutes(RouteCollection...{ //3.这个没什么好讲了,就是在应用程序启动时初始化它 RegisterRoutes(RouteTable.Routes); } } } 注意这一点ASP.NET..." Action="About" 它的一个QueryString参数为 id="12" 四、UrlRouting相关资料 System.Web.Routing入门及进阶 上篇 System.Web.Routing...入门及进阶 下篇 System.Web.Routing 的说明文档 那么我们要怎么利用ASP.NET MVC编写自己想要的页面呢?

38220
  • ASP.NET那点不为人知的事(二)

    处理程序工厂 处理程序工厂(实现IHttpHandlerFactory接口)的优点:因为我们知道,实现了处理程序接口的类就可以被用来创建处理程序对象直接使用,如果需要对处理程序对象进行管理,例如:我们可以创建一个处理程序对象池...通过配置文件,对于扩展名为ashx的请求是通过SimpleHandlerFactory处理程序工厂完成的,当请求一个ashx扩展名的服务器上资源时,SimpleHandlerFactory将找到对应的ashx...最后,SimpleHandlerFactory通过反射创建一个此类型处理程序对象实例 ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory...通过aspx文件生成两个类,一个为与后台代码中定义的类同名的部分类(Partial),这个部分类(Partial)将与后台代码中定义的类在编译时合并为一个派生自Page的页面派生类,但是,在ASP.NET...GetCompiledPageInstance方法可以通过一个aspx文件创建一个相应的页面处理程序对象实例,用于处理请求。

    71351

    记一次某OA渗透测试有意思的文件上传漏洞挖掘经历以及分析

    原文首发在:先知社区https://xz.aliyun.com/t/16959登陆我这边首先找到的是一个文件上传的登陆框测试了一下sql注入之类的,发现没有目录扫描看到api爆出200 ok的那一刻我的心情是激动的...,感觉要有很多接口泄露了一堆ashx文件加上一个UEditor的组件,ashx.ashx 文件扩展名通常用于表示 ASP.NET 处理程序(ASP.NET Handler)。...ASP.NET 处理程序是一种在服务器端处理特定类型请求的代码文件。这些文件通常用于执行一些特殊的服务器任务,如图像生成、文件下载或其他动态内容的处理。...ueditor组件也有一个ashx文件,看着文件名字应该就是用来处理文件上传功能的我们访问一下给我返回了这个消息,那么我们可以理解为这个文件应该是要传递一个参数的,但是参数是什么,我们目前还不知道我爆破了一下参数依旧是接口错误难道到手的文件上传...=""):# 目标URL url = url+'/api/FileUploadApi.ashx?

    9800

    关于radcontrols控件之Radupload「建议收藏」

    ASP.NET Web应用程序 添加引用 Telerik.Windows.RadUploadHandler 新增ASHX处理- RadUploadHandler.ashx 下面是一个示例代码的处理...System.Web; public class RadUploadHandler : Telerik.Windows.RadUploadHandler { } 创建一个新文件夹用于放上传的文件。...例子中的文件夹命名为“ Uploads ” 这应该是现在能够的服务器端安装程序一部分。为了测试所创建的Web应用程序和处理程序将您的浏览器的RadUploadHandler.ashx文件。...这个URL应该是一个绝对URL指向上传处理程序。该域名在Silverlight的应用托管应该是相同的域中的上传处理程序托管。...请注意,该端口的应用程序应该是一样也(在我的情况下,端口设置为6519 ,但任何其他端口-包括默认端口80 -都可以运行) 。

    38810

    Asp.net 一般处理程序+扩展

    在上一篇博客中,提到一般处理程序真的不一般。这篇博客主要是给大家解惑。由于最近在做项目的过程中,用到了很多的一般处理程序,相信你也一定用到过,但是你真的了解它吗?...介绍: 一般处理程序的一般是相对于aspx页面来说的,它介于请求与响应之间的处理程序。...通过VS2012中创建一个一般处理程序将会生成两个后缀名的文件.ashx和.ashx.cs。...IHttpHandler接口的处理程序类,这个处理程序被ASP.NET直接在系统配置文件映射到了ashx扩展名的请求上。...简单的举三个最常用的例子: 1、图片过滤(防盗链) 2、图片验证码 3、处理自定义后缀名请求 这个三个例子的代码,我通过转载的博客,为大家做一个详细的介绍。

    94730

    基于asp.net + easyui框架,一步步学习easyui-datagrid—实现添加、编辑、删除

    在博客开头为大家设置了一个悬念,在实现过程中遇到了困难,就是在下拉框动态加载数据时,显示的是一个数据库信息,更新的时候要更新此显示信息的数据库主键。...解决方案: 只需要调用一般处理程序,将所需数据转化成json作为返回值,发送到界面端,显示在下拉框中的数据绑定到combobox的textField属性中,需要更新的数据绑定到valueField...}); } }) } } 这篇博客就不为大家提供一般处理程序的源码了...: 使用Jquery+EasyUI框架开发项目+下载+帮助--EasyUI的简介 Asp.net之真假分页大揭秘、使用AspNetPager实现真分页 Asp.net前端页面开发总结 Asp.net 一般处理程序...+扩展 Asp.Net构架(Http请求处理流程)、Asp.Net 构架(Http Handler 介绍)、Asp.Net 构架(HttpModule 介绍) 基于asp.net + easyui框架,

    1.6K20

    ASP.Net请求处理机制初步探索之旅 - Part 3 管道

    一、所谓“请求处理管道”   HttpApplication对象是ASP.NET中处理请求的重要对象,但是,这种类型的对象实例不是由程序员来创建的,而是由ASP.NET帮助我们创建的。...为了便于扩展处理工作,HttpApplication采用处理管道的方法进行处理,将处理的过程分为多个步骤,每个步骤通过事件的形式暴露给程序员,这些事件按照固定的处理顺序依次触发,程序员通过编写事件处理方法就可以自定义每一个请求的扩展处理过程...可以对Session变量做任何你想要做的处理。 HttpModule PreRequestHandlerExecute 恰好在ASP.NET 开始执行事件处理程序前发生。可以预处理你想做的事。...在这两个事件之间,ASP.NET最终通过请求资源类型相对应的HttpHandler实现对请求的处理,其实现方式是调用在第八个事件创建的页面对象的ProcessRequest方法。 ?   ...在这个System.Web.Routing.dll中,有一个最重要的类叫做UrlRoutingModule,它是一个实现了IHttpModule接口的类,在请求处理管道中专门针对ASP.NET MVC请求进行处理

    1.2K20

    自己动手写一个简单的MVC框架(第一版)

    2.1 创建一个空白Web程序,移除所有默认引用   无论是ASP.NET WebForms还是ASP.NET MVC,他们都只是一个框架,是建立在System.Web之上的框架。...2.2 模拟ASP.NET MVC,创建几个MVC文件夹   按照ASP.NET MVC的惯例添加Controllers、Models和Views文件夹(不是必须的): ?...(一般处理程序),作为处理程序的入口   有了Controller之后,需要借助一个入口来指引请求到达指定Controller,所以这里我们实现一个最简单的一般处理程序,它将url中的参数进行解析并实例化指定的...管道工作,实现MvcHandler   在ASP.NET请求处理管道中,具体的处理工作都是转交给了实现IHttpHandler接口的Handler对象进行处理。...四、小结   本文首先回顾了一下MVC的关键概念,并从一个“纯净”的ASP.NET Web空项目开始一步一步构建一个类似于MVC的应用程序,通过单一处理入口的伪静态方式与模拟路由表的方式进行了简单地实现

    1K21

    如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出

    从那时起,Serilog的创建者Nicholas Blumhardt就在ASP.NET Core 3.0中使用Serilog撰写了一篇详尽的博客文章。...原生请求日志 在本节中,首先让我们创建一个标准的ASP.NET Core 3.0的Razor pages应用,当然你也可以直接使用dotnet new webapp命令来进行创建。...(还是很多,如果能精简成一条日志记录是不是会好很多) 这是Serilog RequestLoggingMiddleware旨在解决的问题-为请求中的每个步骤创建单独的日志相反,它是创建一个包含所有相关信息的...切换到Serilog的 RequestLoggingMiddleware RequestLoggingMiddleware被包含在Serilog.AspNetCore中,可以被用于为每个请求添加一个单一的...例如,不再记录终结点名称和Razor页面处理程序。在后续文章中,我将展示如何将它们添加到摘要日志中。

    1.7K10

    Asp.net mvc 知多少(二)

    本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com...可以通过实现 IViewEngine 创建自定义的视图引擎并注册自定义视图引擎到ASP.NET MVC应用程序。...路由是一种模式匹配系统,用来监视传入的请求并决定如何处理请求。在运行时,路由引擎使用路由表去匹配传入的请求的Url,根据路由表定义的Url格式与传入的Url格式进行匹配。...假设你的web应用程序挂载在 www.example.com,那么你的url应该是www.example.com/{controller}/{action}/{id}这样的。...URL rewriting(URL重写)重写你的旧的URL到一个新的URL。而Routing(路由)只是将URL映射到它对应的原始路由。 Q22.

    2.1K91

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

    Application_ResolveRequestCache:当ASP.NET完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过处理程序(页面或者是WebService)的执行。...Application_PreRequestHandlerExecute:当ASP.Net即将把请求发送到处理程序对象(页面或者是WebService)之前执行。这个时候,Session就可以用了。...Application_PostRequestHandlerExecute:当处理程序对象(页面或者是WebService)工作完成之后执行。...Application_ReleaseRequestState:在ASP.NET执行完所有请求处理程序后执行。ReleaseRequestState事件将使当前状态数据被保存。...Application_UpdateRequestCache:在ASP.NET执行完处理程序后,为了后续的请求而更新响应缓存时执行。

    1.4K20

    asp.net MVC 应用程序的生命周期

    预订PostAuthorizeRequest 事件可确保在处理附加的模块或处理程序之前对请求进行身份验证和授权 ResolveRequestCache 当 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务时发生...在 PostResolveRequestCache 事件之后、PostMapRequestHandler 事件之前创建一个事件处理程序(对应于请求 URL 的页 PostMapRequestHandler...UpdateRequestCache 当 ASP.NET 执行完事件处理程序以使缓存模块存储将用于从缓存为后续请求提供服务的响应时发生。...PostUpdateRequestCache 在 ASP.NET 完成缓存模块的更新并存储了用于从缓存中为后续请求提供服务的响应后,发生此事件。...LogRequest 在 ASP.NET 完成缓存模块的更新并存储了用于从缓存中为后续请求提供服务的响应后,发生此事件。

    1.7K30

    asp.net MVC 应用程序的生命周期

    预订PostAuthorizeRequest 事件可确保在处理附加的模块或处理程序之前对请求进行身份验证和授权 ResolveRequestCache 当 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务时发生...在 PostResolveRequestCache 事件之后、PostMapRequestHandler 事件之前创建一个事件处理程序(对应于请求 URL 的页 PostMapRequestHandler...UpdateRequestCache 当 ASP.NET 执行完事件处理程序以使缓存模块存储将用于从缓存为后续请求提供服务的响应时发生。...PostUpdateRequestCache 在 ASP.NET 完成缓存模块的更新并存储了用于从缓存中为后续请求提供服务的响应后,发生此事件。...LogRequest 在 ASP.NET 完成缓存模块的更新并存储了用于从缓存中为后续请求提供服务的响应后,发生此事件。

    1.4K10
    领券