上一次学习了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

转载于:https://www.cnblogs.com/guojian/p/3756921.html

(asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用相关推荐

  1. Could not load type 'System.Web.Mvc.ViewPagedynamic' in asp.net mvc2 after publishing the website

    在WebConfig里 找到 <pages></pages> <pagespageParserFilterType="System.Web.Mvc.ViewTy ...

  2. 错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法

    错误: 通过IIS发布网站,登录后弹出如下错误: Parser Error Message: 未能加载文件或程序集"System.Web.Mvc, Version=2.0.0.0, Cult ...

  3. vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法...

    原先本地项目版本(4.0.0.1)高于服务器版本(4.0.0.0),本地项目改成服务器版本4.0.0.0时,发布后的项目报这个错误 出现的问题:原先项目编译后可运行,发布在IIS后就报这个错误 分析问 ...

  4. 能加载文件或程序集“System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖

    能加载文件或程序集"System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&quo ...

  5. html5链接mvc,LinkExtensions.ActionLink 方法 (System.Web.Mvc.Html) | Microsoft Docs

    对于指定的链接文本.操作.控制器.协议.主机名.URL 片段.作为路由值字典的路由值和作为字典的 HTML 属性,返回一个定位点元素, (元素) . public static System.Web. ...

  6. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”

    ERROR: "System.Web.Mvc.Controller.File(string, string, string)"是一个"方法",这在给定的上下文中 ...

  7. (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在

    问题描述:在用vs生成MVC时若使用Internet应用程序为模版,项目建好后重新编译下无法通过,弹出错误: 解决方案:问题出来后,询问了身边很多人都是一头雾水,于是乎各种谷歌和百度,还好功夫不负有心 ...

  8. [转]MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在

    如果你在创建项目的时候出现上述错误,别急! 解决方案: step1:首先关闭你应用程序方案,在你保存项目的文件夹下找到应用程序名.csproj  . step2:用文字编辑器打开你找到它找到<R ...

  9. 【Spring Web MVC】Spring Web MVC 注解开发环境搭建

    为什么80%的码农都做不了架构师?>>>    1.创建maven项目 创建一个名为:springwebmvc-first的maven项目 2.添加依赖包 要使用springWebM ...

最新文章

  1. 从零开始学习OpenGL ES之五 – 材质
  2. hapi mysql项目实战路由初始化_用hapi.js mysql和nuxt.js(vue ssr)开发仿简书的博客项目...
  3. boost::contract模块实现命名覆盖的测试程序
  4. java Unicode转码
  5. 论文浅尝 | 利用 KG Embedding 进行问题回答
  6. cmd下pip安装mysql_Windows下使用pip安装mysql-python
  7. P1078 文化之旅
  8. 【Flink】checkpoint storage at checkckpoint coordinator No route host from xx to xx:9000
  9. Linux指令:sed和awk指令
  10. mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
  11. 笔记本电脑性价比排行2019_笔记本电脑性价比排行2020榜单介绍
  12. 获取Android 光感Sensor的值
  13. 《锋利的JQuery》notes
  14. android x86 兼容问题,X86如何解决Android应用兼容性问题
  15. WIN10的桌面和虚拟桌面的切换快捷键太方便了
  16. Excel中DATEDIF函数的使用方法基础篇
  17. 无法直接安装Ubuntu16.04的Win10系统安装教程
  18. 5+App使用UniPush发送消息,App在线、离线均能收到消息推送,并在通知栏进行提醒,苹果、华为、小米手机均测试通过
  19. 【Linux开发环境搭建】之Nginx安装
  20. 什么是WRAP认证?WRAP认证详解

热门文章

  1. Android开发究竟该如何学习,成功入职字节跳动
  2. 【Network Security!】虚拟化架构与系统部署
  3. 入门训练 Fibonacci数列-python实现
  4. ts快捷键 vscode_vscode怎么调试ts
  5. python执行命令并返回结果集_Python接口测试结果集实现封装比较
  6. tar -xf_青铜表选什么?不可错过的XF帝舵碧湾小铜盾
  7. linux访问网页元素,Linux_DOM和JAVASCRIPT访问页面上的元素,访问方法:getElementById() - phpStudy...
  8. [转载]js节流与防抖,防止重复提交、防止频繁重复点击
  9. 武汉网络推广优化中网站关键词如何更合理布局分布?
  10. c语言if(!k1)x=1,C语言选择题题库2