(转)System.Web.Mvc.UrlHelper的学习与使用
转载自http://www.cnblogs.com/longgel/archive/2010/02/06/1664884.html
上一次学习了HtmlHelper帮助类,这次我们学习一下UrlHelper帮助类,看类名也都知道这个类是用来帮我们生成URL在ASP.NET MVC应用程序中。让我们来看看该类给我们带来了哪些方便的方法和属性,UrlHelper提供了四个非常常用的四个方法,
1.Action方法通过提供Controller,Action和各种参数生成一个URL,
2.Content方法是将一个虚拟的,相对的路径转换到应用程序的绝对路径,
3.Encode方法是对URL地址进行加密,与Server.Encode方法一样。
4.RouteUrl方法是提供在当前应用程序中规定的路由规则中匹配出URL。
另外还有两个属性,分别是RequestContext和RouteCollection两个属性,分别指的是包含HTTP上下文和RouteData两个属性,另外,RouteCollection是整个当前应用程序中规定的路由规则。
下面对上面的方法使用写成代码看
<div>
1.使用Action方法生成URL(Controller将是默认的)<br />
<a href='<%= Url.Action("DemoAction") %>' title="">指定Action名称生成URL</a><br />
<a href='<%= Url.Action("DemoAction","id") %>' title="">指定Action和一个RouteData(参数)生成URL</a><br />
<a href='<%= Url.Action("DemoAction", new {id=2,category=5 })%>' title="">指定Action名称和多个参数生成URL</a><br />
<a href='<%= Url.Action("DemoAction","DemoController")%>' title="">指定Action和Controller生成URL</a><br />
<a href='<%= Url.Action("DemoAction","DemoController","id")%>' title="">指定Action,Controller和一个参数生成URL</a><br />
<a href='<%= Url.Action("DemoAction","DemoController", new {id=2,category=5 })%>' title="">指定Action,Controller和多个参数生成URL</a><br />
<a href='<%= Url.Action("DemoAction","DemoController", new {id=2,category=5 },"https")%>' title="">指定传输协议生成URL</a><br />
<% var rvd = new RouteValueDictionary();
rvd.Add("id", 5);
rvd.Add("category", 2);
var tmp = 5; %>
<a href='<%= Url.Action("DemoAction","DemoController", rvd,"https","local")%>' title="">指定主机名生成URL</a><br /><br />
2.使用Content方法将虚拟(相对)路径生成为绝对路径<br />
<a href='<%= Url.Content("~/DemoController/DemoAction")%>' title="">指定虚拟路径生成绝对路径</a><br /><br />
3.使用Encode加密URL<br />
<a href='<%= Url.Encode("http://www.cnblogs.com/longgel/")%>' title="">加密过的URL连接</a><br /><br />
4.使用RouteUrl生成URL<br />
<a href='<%= Url.RouteUrl(tmp)%>' title="">指定RouteValue生成URL</a><br />
<a href='<%= Url.RouteUrl("Default")%>' title="">指定RouteName生成URL</a><br />
<a href='<%= Url.RouteUrl(rvd)%>' title="">指定多个参数生成URL</a><br />
<a href='<%= Url.RouteUrl("Default",tmp) %>' title="">指定路由规则名和单个路由值</a><br />
<a href='<%= Url.RouteUrl("Default",rvd) %>' title="">指定路由规则名和多个路由值</a><br />
<a href='<%= Url.RouteUrl("Default",tmp,"https") %>' title="">指定传输协议</a><br />
<a href='<%= Url.RouteUrl("Default",rvd,"https","www.cnblogs.com") %>' title="">指定主机名</a><br />
</div>
看看生成之后的html页面中的URL
<div>
1.使用Action方法生成URL(Controller将是默认的)<br />
<a href='/simple/DemoAction' title="">指定Action名称生成URL</a><br />
<a href='/id/DemoAction' title="">指定Action和一个RouteData(参数)生成URL</a><br />
<a href='/simple/DemoAction?id=2&category=5' title="">指定Action名称和多个参数生成URL</a><br />
<a href='/DemoController/DemoAction' title="">指定Action和Controller生成URL</a><br />
<a href='/DemoController/DemoAction?Length=2' title="">指定Action,Controller和一个参数生成URL</a><br />
<a href='/DemoController/DemoAction?id=2&category=5' title="">指定Action,Controller和多个参数生成URL</a><br />
<a href='https://localhost/DemoController/DemoAction?id=2&category=5' title="">指定传输协议生成URL</a><br />
<a href='https://local/DemoController/DemoAction?id=5&category=2' title="">指定主机名生成URL</a><br /><br />
2.使用Content方法将虚拟(相对)路径生成为绝对路径<br />
<a href='/DemoController/DemoAction' title="">指定虚拟路径生成绝对路径</a><br /><br />
3.使用Encode加密URL<br />
<a href='http%3a%2f%2fwww.cnblogs.com%2flonggel%2f' title="">加密过的URL连接</a><br /><br />
4.使用RouteUrl生成URL<br />
<a href='/simple/urlhelperdemo' title="">指定RouteValue生成URL</a><br />
<a href='/Longgel/Index/Id' title="">指定RouteName生成URL</a><br />
<a href='/simple/urlhelperdemo?id=5&category=2' title="">指定多个参数生成URL</a><br />/Longgel/Index/Id<br />
<a href='/Longgel/Index/Id' title="">指定路由规则名和单个路由值</a><br />
<a href='/Longgel/Index/Id?id=5&category=2' title="">指定路由规则名和多个路由值</a><br />
<a href='https://localhost/Longgel/Index/Id' title="">指定传输协议</a><br />
<a href='https://www.cnblogs.com/Longgel/Index/Id?id=5&category=2' title="">指定主机名</a><br />
</div>
(转)System.Web.Mvc.UrlHelper的学习与使用的更多相关文章
- System.Web.Mvc.UrlHelper的学习与使用
我们学习一下UrlHelper帮助类,看类名也都知道这个类是用来帮我们生成URL在ASP.NET MVC应用程序中.让我们来看看该类给我们带来了哪些方便的方法和属性,UrlHelper提供了四个非常常 ...
- (asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用
上一次学习了HtmlHelper帮助类,这次我们学习一下UrlHelper帮 助类,看类名也都知道这个类是用来帮我们生成URL在ASP.NET MVC应用程序中.让我们来看看该类给我们带来了哪些方便的 ...
- System.Web.Mvc.Controller.cs
ylbtech-System.Web.Mvc.Controller.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicK ...
- Could not load type 'System.Web.Mvc.ViewPage<dynamic>' in asp.net mvc2 after publishing the website
在WebConfig里 找到 <pages></pages> <pages pageParserFilterType="System.Web.Mvc.ViewT ...
- MVC-命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html”(是否缺少程序集引用?)
如上截图,明明引用了“System.web.mvc”,可是还出这样的错误. 解决方法: 1.右键引用的“System.Web.Mvc” 2.<复制本地>一样选择<True> 3 ...
- System.Web.Mvc.dll在各个版本MVC中的文件位置
the default folder would be like the following: MVC 5 C:\Program Files (x86)\Microsoft ASP.NET\ASP.N ...
- CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html、Ajax”(是否缺少程序集引用?)
从SVN上down下来的程序,编译报了一大堆的错,发现是缺少引用,但是明明引用了,后来打开引用,发现system.web.mvc这个引用打着叹号,如图: 后来重新引用了本机的system.web.mv ...
- vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法
原先本地项目版本(4.0.0.1)高于服务器版本(4.0.0.0),本地项目改成服务器版本4.0.0.0时,发布后的项目报这个错误
- ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”,这在给定的上下文中无效 这是一个与Controller.F ...
随机推荐
- Java_注解_00_资源贴
1.Java注解教程:自定义注解示例,利用反射进行解析 2. (1)深入理解Java:注解(Annotation)基本概念 (2)深入理解Java:注解(Annotation)自定义注解入门 (3)深 ...
- MySQL丨删除一张表小常识
在MySQL里面 ,对于删除一张表里面的所有内容有两种语句: 1.delete from table_name; 2.truncate table table_name; 解析:以上两种方式都可以删除 ...
- 3.1 第一个场景 HelloWorldScene
HelloWorldScene.h #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos ...
- 洛谷【P1177】【模板】归并排序
题目传送门:https://www.luogu.org/problemnew/show/P1177 归并排序: 1.先将\(a\)数组的区间\([l,mid],[mid+1,r]\)排成有序的. 2. ...
- 洛谷【P1236】算24点
我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...
- Poj 1017 Packets(贪心策略)
一.题目大意: 一个工厂生产的产品用正方形的包裹打包,包裹有相同的高度h和1*1, 2*2, 3*3, 4*4, 5*5, 6*6的尺寸.这些产品经常以产品同样的高度h和6*6的尺寸包袱包装起来运送给 ...
- 彻底删除kafka下面的topic
如果只是用kafka-topics.sh的delete命令删除topic,会有两种情况: 如果当前topic没有使用过即没有传输过信息:可以彻底删除 如果当前topic有使用过即有过传输过信息:并没有 ...
- 【转】 Pro Android学习笔记(七一):HTTP服务(5):多线程调用HttpClient
目录(?)[-] 应用共享HttpClient对象的同步问题 创建共享HttpClient代码 创建共享对象 创建可共享的HttpClient对象 使用共享HttpClient对象的代码 基础代码 修 ...
- java基础知识(4)---设计模式
设计模式:解决问题最行之有效的思想.是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. java中有23种设计模 ...
- TS学习之类
定义类 class Person { name: string; //属性 constructor(_name: string) { this.name = _name; } //构造函数 sayHe ...