ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】

这节讲 一下ASP.NET MVC中的Helper。

何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组。

其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方法,那为什么要有Helper呢?

其实无非是将界面与逻辑分离,而且Asp.net MVC也并不只支持Aspx一种View(还可以扩展出来很多),在扩展包中,也有Castle的NVelocity引擎和Boo,以及ViewSpark的页面。

所以,如果在Aspx中定义方法的话会影响其扩展性和可移植性.而且代码也不太好看.

一、UrlHelper.Action

UrlHelper的Action方法 用于生成一个URL地址,它的使用方法为

当前Controller下Index这个Action <%=Url.Action(“Index”)%> index

当前Controller下Index这个Action <%=Url.Action(“Index”,new{id=1})%> index?id=1

EiceController下Index这个Action <%=Url.Action(“Index”,"Eice")%> /eice/index

EiceController下Index这个Action <%=Url.Action(“Index”,"Eice",new{id=1})%> /eice/index?id=1

例如我在View中写Url.Action("Index","Home"),运行后则会生成/Home/Index这个地址,如果你的系统中的URL Routing规则总是变化的话这个Helper则是你必备之选.

二、UrlHelper.Encode

这也是UrlHelper的一个方法 使用方法 如<%=Url.Encode("中文")%>功能与Server.UrlEncode相同,这里不多说了

三、UrlHelper.Content

用于服务器路径转换为绝对路径。

<%=Url.Content("~/content/site.css") %>

最后的结果为

/content/site.css 

如果你有特殊需要可以用3.0新特性,扩展方法来为UrlHelper来增加新的功能,下一节我们讲如何使用Helper来显示Html

转载于:https://www.cnblogs.com/cxd4321/archive/2009/09/12/1565401.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++深度剖析教程2】C++经典问题解析之二 this指针与成员函数

隐藏的this指针&#xff0c;所有对象共享类的成员函数 写一篇博客花费时间虽然长&#xff0c;但是却让你对内容的记忆尤为深刻&#xff0c;尤其是你对它的态度。记录菜鸟的成长日记&#xff0c;也希望同为菜鸟的你们与我一起共同进步&#xff01;&#xff01;现在分享的是C的学…

uml 类图整理

1.五分钟读懂UML类图 http://www.cnblogs.com/shindo/p/5579191.html 2.UML类关系&#xff08;依赖&#xff0c;关联&#xff0c;聚合&#xff0c;组合的区别&#xff09; https://www.jianshu.com/p/eefa0b5b4922 2.1 关联 1、关联关系 关联关系又可进一步分为单向关联、…

web控件开发系列(四) 自定义控件属性(下)

控件在WEB开发时经常要用到&#xff0c;虽然有部分已经存在工具箱里&#xff0c;但有时总需要根据自己的要求&#xff0c;开发一些合适自己的控件。接上一节,已经说过了控件的属性, 例如&#xff0c;我们需要一组属性的集合时&#xff0c;这时我们需要用到的就是复杂属性了&…

【C++深度剖析教程3】C++中类的静态成员变量

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff1a; 780902027 以一个简单的例子来引入C中类的静态成员变…

前端学习(46):页面导入样式时,使用link和@import有什么区别?

用法 import的写法 <style type”text/css”> import url&#xff08;“a.css”&#xff09;&#xff1b; </style> link的写法 <link rel"stylesheet" href"index.csss"> 区别 1. 来源&#xff1a;link属于XHTML标签&…

静态变量加载时间,静态代码块加载时间

当类加载器将类加载到JVM中的时候就会创建静态变量&#xff0c;这跟对象是否创建无关。静态变量加载的时候就会分配内存空间。静态代码块的代码只会在类第一次初始化的时候执行一次。一个类可以有多个静态代码块&#xff0c;它并不是类的成员&#xff0c;也没有返回值&#xff…

关于linux系统中无法识别某一命令问题的解决方案

问题描述&#xff1a; [XXXX~]$ su - root 口令&#xff1a; [XXXX:]~# gedit /etc/profile Command gedit is available in /usr/bin/gedit The command could not be located because /usr/bin is not included in the PATH environment variable. -su: gedit&#xff1a;找…

FarMap诞生了!

今天&#xff0c;注册完成的FarMap网站最简版正式上线&#xff0c;开辟了一片我的作品发布空间。www.farmap.cn准备修改各个博客网址和下载地址。FarMap2009 使用说明 关键字&#xff1a;基站定位&#xff0c;CPS&#xff0c;GPS&#xff0c;CPS&GPS&#xff0c;短信通讯&a…

23设计模式学习

1.什么设计模式 1.1模式是解决相似问题的核心1.2设计模式软件设计过程中解决一类问题的方案总结来说&#xff1a;设计模式 &#xff1a;软件设计过程中解决一类问题的一种方案&#xff1b; 2.什么是面向对象的设计模式 面向对象设计模式描述了面向对象设计过程中、特定场景下…

修改linux的最大文件句柄数限制

修改linux的最大文件句柄数限制 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值&#xff0c;就会提到“too many files open”的…

人工智能课程

清华大学计算机博士联合智能社创始人年末巨献&#xff0c;【机器学习】大型线上公开课&#xff0c;报名人数超过2800人&#xff0c;课程观看地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1nv66ywD 密码&#xff1a;9bv3想看更多课程的联系:qq:1126137994微信&…

Makefile工程管理语法与使用技巧

使用GNU Make工具来管理程序是每个Linux工程师必须掌握的技能。Make能够使整个程序的编译、链接只需要一个命令(make)就可以完成。 Make的工作主要依赖于一个叫为Makefile的件。Makefile文件描述了整个程序的编译&#xff0c;连接等规则。其中包括&#xff1a;工程中的哪些源文…

JUC 知识总结

在 ThreadPoolExecutor 里面定义了 4 种 handler 策略&#xff0c;分别是 1. CallerRunsPolicy &#xff1a;这个策略重试添加当前的任务&#xff0c;他会自动重复调用 execute() 方法&#xff0c;直到成功。 2. AbortPolicy &#xff1a;对拒绝任务抛弃处理&#xff0c;并且…

C# java 有关“字节序”的描述 .

有关“字节序”的描述 收藏 BIG-ENDIAN&#xff08;大字节序、高字节序&#xff09; LITTLE-ENDIAN&#xff08;小字节序、低字节序&#xff09; 主机字节序 网络字节顺序 JAVA字节序 1&#xff0e;BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数据有关的比如int,short,long型&…

移植u-boot-2012.04.01到jz2440开发板

今天我给大家分享一下如何移植一个纯净的uboot到jz2440开发大版&#xff0c;通过记录学习分享&#xff0c;与大家一起进步&#xff01;&#xff01;&#xff01; 1.首先我们在uboot官网下载u-boot-2012.04.01.tar.bz2&#xff0c;建立source insight工程。将下载好的uboot通过…

温习了一下java线程状态方面的知识总结一

好长时间没有复习线程状态这块&#xff0c;读并发编程实战正好看着这块&#xff0c;顺便复习一下&#xff1a; 1.线程的五种状态&#xff1a; 2.线程五种状态的转换图&#xff1a; wait()会立刻释放synchronized(obj)中的锁以便其它线程可以执行obj.notify 但是notify() 不会立…

WinForm:进度条的实现(异步)

在WinForm中经常遇到一些费时的操作界面&#xff0c;比如统计某个磁盘分区的文件夹或者文件数目&#xff0c;如果分区很大或者文件过多的话&#xff0c;处理不好就会造成“假死”的情况&#xff0c;或者报“线程间操作无效”的异常&#xff0c;为了解决这个问题&#xff0c;可以…

移植u-boot-2012.04.01到jz2440开发板之修改代码支持NAND启动

上一篇文章我们已经修改了uboot源码使其能够正常打印输出了&#xff0c;但是输出停到了nand启动那里&#xff0c;所以这篇文章就来记录如何修改源码使uboot支持NAND启动。 原来的代码在链接时加了”-pie”选项, 使得u-boot.bin里多了”(.rel)”, “*(.dynsym)”使得程序非常大…

XMLHttpRequest() 请求 返回结果JSON 对象与JSON 字符串处理

好久没有看JavaWEB项目了突然拿起来&#xff0c;而且是原生的项目&#xff0c;中JSON 字符串的处理 json.stingfy() 将对象&#xff0c;数组转换为字符串&#xff0c;json.parse() 将字符串转成json 对象JSON.stringify&#xff08;数组或者对象&#xff09; JSON.parse(字符串…