首页
学习
活动
专区
工具
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编写自己想要页面呢?

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

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

    70551

    关于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 -都可以运行) 。

    38310

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

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

    93730

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

    在博客开头大家设置了一个悬念,在实现过程中遇到了困难,就是在下拉框动态加载数据时,显示是一个数据库信息,更新时候要更新此显示信息数据库主键。...解决方案: 只需要调用一般处理程序,将所需数据转化成json作为返回值,发送到界面端,显示在下拉框中数据绑定到comboboxtextField属性中,需要更新数据绑定到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.5K20

    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

    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

    如何利用SerilogRequestLogging来精简ASP.NET Core日志输出

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

    1.6K10

    自己动手写一个简单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

    在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.9K90

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

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

    1.3K10

    Asp.net web api 知多少

    任何会话类型数据应该在客户端保存和处理,只有在每次请求中按需传递到服务器。 Cacheable(缓存) - 客户端应该能够缓存响应以供后续使用。 Q3. REST和 SOAP间区别是什么?...主要有以下区别: ASP.NET MVC 用来创建web应用返回视图和数据;但是ASP.NET WEB API 是用来创建完整HTTP服务,仅返回数据无视图返回。...当你混合使用了MVC和WEB API控制器,你想实现授权那么你必须创建两个过滤器一个MVC和另一个WEB API,因为两者是不同。...WEB API 是一个轻量级框架,不仅仅web应用程序可以使用,其他智能手机app也可使用。 ? Q9. WEB API能返回View? Ans....可以如同ASP.NET MVC那样修改WEB APIaction name? Ans.

    4.8K50

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

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

    1.7K30
    领券