前记:呃哼,尽管是第一篇,个人学习记录用,并且我写东西也不太习惯带上各种专业名词,只因为记不住,不多说直接上内容。
Web Api在ASP.NET上有不少的版本形式,就拿其中的路由部分来讲,我在用的时候是微软的MVC提供的。
所用工具:
Visual Studio 2013
所需命名空间:
System.Web.Routing;
System.Web.Mvc;
所需NuGet管理包:
ASP.NET MVC (微软提供)
所用到的部分
特性,Global.ascx初始化文件
首先要先大概的说一下:
IIS在接受客户端发过来的请求的时候,首先会受到请求筛选,应用程序映射处理各种对请求处理的操作的影响。优先于Web Api执行(貌似是废话-_-记录记录)
恩,IIS接请求自己大略的处理一下后就会丢到我们自己写的代码上处理了。这时候就是Web Api的出场部分。那么,最首要能插足的部分就是路由了。
路由是啥,我们能负责的路由可以随意的改变URL的轨道,尽管我不太能区分伪静态和路由的一个区别,不过就目前对比起以前我配置的伪静态和现在的路由来看,路由的配置资源明显要更加的自由,个性化,范围更广,可以讲伪静态仅仅只是作为路由的一个附属品一样的存在吧,我是这么理解的。
可能讲的比较繁琐,打个比方吧。localhost/Index location/ 与 localhost/default.aspx的访问是同样的效果(在客户端上表现的话)。
例子以上,以下就是代码记录了:
Global.asax (新建项-全局应用程序类)
protected void RegisterRoute(RouteCollection routes) { //开启路由特性 routes.MapMvcAttributeRoutes(); //注册路由地址 routes.MapPageRoute( "AspxRoute", "", "~/otk_main.aspx"); //注册2 routes.MapPageRoute( "IndexRoute", "Index", "~/default.aspx"); } protected void Application_Start() { RegisterRoute(RouteTable.Routes); }
default.aspx:
public class TmController :Controller { [Route("TestIpMonitor/")] [HttpGet] public string Index() { return "123"; } }
恩。。。附上特性路由的展示用。代码编写完毕的时候,可以尝试在调试时在尾巴追加上 "/TestIpMonitor" 这时候大概就能发现返回“123”的内容了哈。如果换成输入 "/Index" 或者 干脆只有"http://localhost:端口号/"的时候,展示的就是default.aspx页了,当然。这时候你在配置IIS的时候可以在请求筛选上。拒绝.aspx的请求,这样,就能完全屏蔽掉对ASPX文件的直接请求了。
当然,倘若用MVC框架开发,即cshtml的话,完全就不需要IIS的辅助了。他本身也就没实体文件能请求。自带的CSHTML文件也是在请求映射里加上了。微软自己就在IIS帮设置完了。
第一次写东西比较水哈~~~学习为主学习为主。