(asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用
上一次学习了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>
原文:http://www.cnblogs.com/longgel/archive/2010/02/06/1664884.html
(asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用的更多相关文章
- MVC的System.Web.Mvc.ViewPage小结
Inherits="System.Web.Mvc.ViewPage<dynamic>这一句最好是自己手动修改,如果是维护用户数据,用户对象名是User,改成Inherits=&q ...
- (asp.net MVC学习)System.Web.Mvc.HtmlHelper学习及使用
在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...
- ASP.NET MVC2未能加载类型“System.Web.Mvc.ViewPage的解決方法
问题描述: “/”应用程序中的服务器错误. 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件. 分析器错误消息: 未能加载类型“System. ...
- 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 ...
- <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
Asp.net Mvc 未能加载类型“System.Web.Mvc.ViewPage 的解決方法 2010-11-30 17:31:51| 分类: .net mvc |举报 |字号 订阅 如果多 ...
- 修改System.Web.Mvc.WebViewPage创建自己的pageBase
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, ...
- System.Web.Mvc 找到的程序集清单定义与程序集引用不匹配
System.IO.FileLoadException: 未能加载文件或程序集"System.Web.Mvc, Version=5.0.0.0, Culture=neutral, Publi ...
- asp.net MVC3 “System.Web.Mvc.ModelClientValidationRule”问题
错误提示: Error 1 The type 'System.Web.Mvc.ModelClientValidationRule' exists in both 'c:\Program Files ( ...
- MVC 5.0 之奇葩错误-<类型“ASP._Page__ViewStart_cshtml”不从“System.Web.WebPages.StartPage”继承>
在实际项目中,我们通常添加MVC项目会先添加一个MVC Empty 的项目,然后需要什么在往里面添加. 但是Empty项目里面只有一个路由注册,而且没有_ViewStart.cshtml文件需要自己添 ...
随机推荐
- android 屏幕适配问题【转】
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情. 首先:你需要在AndroidManifest.xml文件的<m ...
- 1.padding和margin,几种参数
这篇会很短. 那么如上图所示,margin指的是外边距,padding指的是内边距,border自有其像素宽度,element在1335乘以392的地方. margin和padding一样总共有四个, ...
- JavaScript之面向对象学习二(原型属性对象与in操作符)获取对象中所有属性的方法
1.原型属性对象于in操作符之in单独使用 有两种方式使用in操作符:单独使用和在for-in循环中使用.在单独使用中,代码如下: function Person(){ } Person.protot ...
- activemq的两种基本通信方式的使用及总结
简介 在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择.这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨.activem ...
- python 格式化日期
#!/usr/bin/env pythonimport sysimport reimport datetime dd = '2014-08-10'da = datetime.datetime.strp ...
- php采集文章中的图片获取替换到本地
/** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $keyword 创建照片的文件名 * @param string $oriwe ...
- IO库 8.4
题目:编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中. #include <iostream> #includ ...
- Auto login to your computer
in run dialog, type in following words and enter Rundll32 netplwiz.dll,UsersRunDll On user account d ...
- 认识和理解css布局中的BFC
认识和理解css布局中的BFC BFC的定义 是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用. Block Formatting Con ...
- java selenium webdriver实战 应用小结
部分api 1.访问网站 driver.get("http://www.baidu.com"); 或者 driver.navigate().to("http://www. ...