mvc中路由的映射和实现IHttpHandler挂载
首先我们了解一下一般的方法
我们只需要在web.config配置文件中做映射处理即可。
第一种形式:
<system.web>
<urlMappings enabled="true"> <add url="~/d" mappedUrl="SmackBio.WebSocketSDK.GenericHandler"/> </urlMappings>
注释:这里的url就是我们需要在请求的具体写法,然后mappedUrl则是我们实际项目中的处理位置。
第二种形式:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="/socket" verb="*" name="GenericHandler" type="SmackBio.WebSocketSDK.GenericHandler"/>
</handlers>
</system.webServer>
注释:这里的path就是我们请求的入口地址,type则是我们的实际项目中的方法类位置。
mvc路由配置方法
这是我们不同使用的映射形式。但是在mvc路由中我们挂起一般处理程序却发现行不通了,下面我们就要配置路由方法进行映射。
在mvc中我们分为三步:
1.实现处理代码程序(实现一般处理程序继承类IHttpHandler)
public class GenericHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.IsWebSocketRequest || context.IsWebSocketRequestUpgrading)
{
context.AcceptWebSocketRequest(new SBWebSocketHandler());
}
else
{
context.Response.ContentType = "text/plain";
context.Response.Write("Service running");
}
} public bool IsReusable
{
get
{
return false;
}
}
}
2.定义一个类路由规则(实现路由IRouteHandler接口然后指向处理代码程序类)
public class PlainRouteHandler : IRouteHandler
{ public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new GenericHandler();
}
} public static void RegisterHandler(RouteCollection routes)
{ RouteTable.Routes.Add("socket",
new Route("socket", new MvcZodiac.Controllers.PlainRouteHandler()));
}
3.注册到程序中(在Global.asax中的Application_Start方法注册)
RegisterHandler(RouteTable.Routes);
这里补充一下,这句话一定要写在路由注册之前,不然不会起作用。例如:
mvc中路由的映射和实现IHttpHandler挂载的更多相关文章
- MVC中路由
篇目 介绍 路线的性质 了解缺省路由 用一个例子的路由 结论 介绍 本文介绍了MVC中的路由.如何执行的路线是由路由引擎和如何定义的URL路由. ASP.NET MVC的路由是一个模式匹配系统,负责传 ...
- 浅谈MVC中路由
引言 学习ASP.NET MVC 路由这一关是肯定必不可少的.这一节,我们就来简单介绍下MVC中的路由机制.简单的路由机制相信大家都已了解,这一节主要介绍路由中很少使用的部分. 使用静态URL片段 在 ...
- 第十四节:再探MVC中路由的奥秘
一. 基于RouteBase扩展 1. 原理 扩展RouteBase,同样使用的是MVC框架提供的MvcRouteHandler进行处理. 2. 步骤 1. 新建YpfRoute1类,继承RouteB ...
- MVC中路由的修改和浏览器的地址参数
在 ASP.NET MVC 应用程序中,它是更常见的做法在作为路由数据 (像我们一样与身份证上面) 比将它们作为查询字符串传递的参数中传递. ) { return HttpUtility.HtmlEn ...
- MVC中路由的一些内容详解
使用路由的好处:1.能够根据系统需求,灵活的划分请求规则(不同模块请求的URL是不一样的)2.屏蔽物理路径,提高系统的安全性,以上情况是无法根据URL分析视图文件在站点目录中的位置3.有利于搜索引擎优 ...
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- IIS 配置MVC项目路由中以api结尾的接口
公司的接口,前端框架是MVC,路由里面对接口配置的路径是以api结尾的,结果之间在iis上访问不了,研究了半天成功了,整理下,以免下次再忘. 路由配置RouteConfig routes.MapRou ...
- .Net MVC中的路由
MVC中的URL也就是路由,不用通过路径访问实际的物理文件而达到向用户展示界面. URL的路由功能 一方面正向 映射到Controller和Action,根据用户输入的URL触发相应的控制器和对应方法 ...
- Asp.net mvc 中的路由
在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...
随机推荐
- Android Widget 开发详解(二) +支持listView滑动的widget
转载请标明出处:http://blog.csdn.net/sk719887916/article/details/47027263 不少开发项目中都会有widget功能,别小瞧了它,他也是androi ...
- 图像检索:CEDD(Color and Edge Directivity Descriptor)算法
颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) 本文节选自论文<Android手机上图像分类技术的研究>. CEDD具有抽 ...
- 我所犯的JavaScript引用错误
近期在w3cschool学习JavaScript和php--学完后,开始帮一哥们友情写网站.但是在使用ajax和Jquery的时候发现,我自己写的脚本不能运行.捣鼓了半天,没有发现任何语句错误.调试器 ...
- iOS中关于UIApplication的详细介绍
UIApplication 什么是UIApplication? UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它 ...
- cocos2d-x项目与vs2013编译
cocos2d-x项目与vs2013编译 2014-12-17 cheungmine 因为C++11引入了众多开源软件的特性,导致cocos2d-x r3.3项目无法用 vs2010编译. 所以安装了 ...
- cocos2D v3.x 中action的回调block变化
cocos2D v2.x中有带参数的回调block: id blk = [CCCallBlockN actionWithBlock:^(CCNode *node){ node.position = o ...
- Linux - script练习
首先HelloWorld 对谈式脚本:变量内容由使用者决定 随日期变化:利用date进行文件的创建 比较直接运行与利用source来运行脚本的区别
- android gif动画开源框架android-gif-drawable
地址:https://github.com/koral--/android-gif-drawable github里介绍挺详细的 项目中需要显示gif图片,并对用户体验有较高的要求,之前一直在使用 ...
- LeetCode之旅(20)-Power of Three
题目: Given an integer, write a function to determine if it is a power of three. Follow up: Could you ...
- IOS原声二维码条形码扫描实现
本文讲述如何用系统自带的东东实现二维码扫描的功能:点击当前页面的某个按钮,创建扫描VIEW.细心的小伙伴可以发现 title被改变了,返回按钮被隐藏了.这个代码自己写就行了,与本文关系不大...绿色的 ...