接上次未完待续【http://www.cnblogs.com/RegicideGod/archive/2013/01/22/2872305.html】

8、  Html.Hidden()

Hidden就是生成隐藏文本域的方法;比如:

@Html.Hidden("id","1")

就会生成一个隐藏文本域

<input id="guid" name="guid" type="hidden" value="1" />

MVC3中如果使用强类型隐藏文本域的作用就很大,比如一个更新的强类型视图,一共有5个字段,你只更新3个字段,那么就需要把另外两个字段放在隐藏文本域中,否则的话,强类型提交到后台就就只会赋值页面绑定的3个字段,另外2个会丢失

9、  Html.Password()

这个比较简单,用法跟hidden一样,就是会生成一个password类型的input

<input id="pass" name="pass" type="password" value="123456" />

10、Html.RadioButton()

RadioButton主要是生成一组来供用户选择,根据name来确定一组按钮;

@Html.RadioButton("color", "red")<text>red</text>
@Html.RadioButton("color", "blue",true)<text>blue</text>
@Html.RadioButton("color", "green")<text>green</text>

就会生成为:

<input id="color" name="color" type="radio" value="red" /><text>red</text>
<input checked="checked" id="color" name="color" type="radio" value="blue" /><text>blue</text>
<input id="color" name="color" type="radio" value="green" /><text>green</text>

11、Html.CheckBox()

这个辅助方法比较特殊一点点,CheckBox生成元素会生成2个input元素;

@Html.CheckBox("sel",true)

生成的源代码为:

<input checked="checked" id="sel" name="sel" type="checkbox" value="true" />
<input name="sel" type="hidden" value="false" />

一个checked一个hidden;

它渲染两个输入元素的主要原因是,HTML规范中规定了浏览器只提交选中的复选框的值,在上面的例子中即使sel的checked没有被选中,也会被提交一个false到后台;

12、  Html.ActionLink()、Html.RouteLink()

看到这两个,好像没怎么想到跟html中的什么东西对应;从字面上理解就是生成link的东西;

ActionLink主要是渲染一个指向另外一个控制器操作的超链接。

比如:

@Html.ActionLink("超链接","SelStudent","Home")

就会生成为:

<a href="/Home/SelStudent">超链接</a>

在ActionLink中还重载了一些可以传递htmlAttributs的方法;

RouteLink和ActionLink差不多,但是RouteLink可以接收路由名称而不接收控制器名称和操作名称。

比如上面的ActionLink的例子可以转换为

@Html.RouteLink("超链接",new {action="SelStudent"})

当然,还有一个区别就是可以直接指定路由名称;

要实现上面的actionlink效果还可以写成

@Html.RouteLink("超链接","Default")

Default是Global启动的时候注册的一个默认路由;这里如果只指定路由,默认的action会变成当前view的action;

13、Html.Partial()、Html.RenderPartial()

Partial用于将分部视图转换为字符串;

新建一个action 为PartialTest 然后添加到分部视图,就会添加一个完全空白的页面(不包含一个标签),然后在需要使用的地方

@Html.Partial("PartialTest")

只需要指定分部视图名称即可;

这样就会把PartialTest中的内容写入到@Html.Partial("PartialTest")所在的位置;有点类似于java中的include导入页面一样

RenderPartial()跟Partial差不多的用途,只是返回的值不一样;Partial返回的是MvcHtmlString,而RenderPartial返回的是空,输入我们手动的在打印一遍;

@{Html.RenderPartial("PartialTest");}

这样就跟Partial效果一样了;但RenderPartial不是返回字符串,而是直接写入响应输出流,直接写入响应流性能上比Partial要好一点;

14、Html.Action()、Html.RenderAction()

Action和RenderAction差不多,一个是直接返回MvcHtmlString一个是返回空,把数据写到响应流;

借上面一个示例说明下分部视图如何不让直接访问,必须用html的辅助方法访问;

[ChildActionOnly]public ActionResult PartialTest() {return PartialView();}

这样就只允许通过Html的辅助方法【Action、RenderAction、Partial、RenderPartial】来进行访问了

在14的示例中如果在ActionResult加上一个[ActionName(“MyTest”)],此时在访问PartialTest时就要用MyTest才能访问到了;

小结:看了这么多系统提供的Html辅助方法,我们是不是该自己写一个自定义的Html辅助方法了?那么开始吧!

新建一个静态类,里面定义一个自己写好的方法

public static MvcHtmlString TestHtml(this HtmlHelper html) {MvcHtmlString mhs = new MvcHtmlString("<div style='width:100;height:100;background-color:red'></div>");return mhs;}

方法返回一个MvcHtmlString(如果是想返回html不被转义的情况下,否则可以返回string),里面顶一个div,然后直接返回;

在页面中使用时得先引入新建的这个类的命名空间;

在顶部写上“@using MVC3Pro.Controllers”

然后就可以像使用其他html辅助方法一样使用点操作了;(在点操作的时候,方法的下面有个向下的小箭头,是代表扩展方法,加this传递进去,将当前方法附加到this的上面为附加方法)

@Html.TestHtml()--------------------------------------------
/*结果*/
<div style='width:100;height:100;background-color:red'></div>

转载于:https://www.cnblogs.com/RegicideGod/archive/2013/01/28/2880755.html

ASP.NET MVC3 读书笔记三(Html辅助方法下)相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. 《编程之美》读书笔记(三):烙饼问题与搜索树

    <编程之美>读书笔记三:烙饼问题与搜索树 薛笛 EMail:jxuedi#gmail.com 前面已经写了一些关于烙饼问题的简单分析,但因为那天太累有些意犹未尽,今天再充实一些内容那这个问 ...

  3. 《How Tomcat Works》读书笔记(三)--Connector(连接器)

    <How Tomcat Works>读书笔记(三)--Connector(连接器) 这是<How Tomcat Works>第三四章的读书笔记.主要写了Tomcat4.0默认的 ...

  4. TCPIP详解Protocol 读书笔记(三) IP协议讲解

    TCP/IP详解:Protocol 读书笔记(三) Chapter3 IP:网际协议 文章目录 TCP/IP详解:Protocol 读书笔记(三) Chapter3 IP:网际协议 IP协议 IP数据 ...

  5. ASP.NET MVC如何使用Ajax的辅助方法

    前言:前面我们已经简单的介绍过了MVC如何Jquery,因为我们如果使用Ajax的话必须要了解Jquery,这篇博客我们将大致了解一下ASP.NET MVC如何使用Ajax的辅助方法,此博客是我的读书 ...

  6. (swing读书笔记)Undo/Redo(下)

    (swing读书笔记)Undo/Redo(下) By cszhao1980 四.更好的集成--StateEdit 现在,实现Undo功能已经比较简单了: (1)         建立一个"普 ...

  7. 正面管教读书笔记 01 正面的方法

    正面管教读书笔记 01 正面的方法 正面管教 作者:简·尼尔森(Jane Nelsen) 第1章 正面的方法 社会的变化造成了孩子的变化 社会进步导致服从和顺从不在重要了 今天的孩子很少有机会培养责任 ...

  8. 《大型网站技术架构》读书笔记三:大型网站核心架构要素

    来源:http://www.cnblogs.com/edisonchou/p/3806348.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

  9. ASP.NET MVC3 学习笔记(一)MVC模式简介

    以下文字摘自 ASP.NET MVC3 高级编程 MVC将应用程序的用户界面(User Interface,UI)分为三个主要部分: 模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则 视图 ...

最新文章

  1. 【翻译】将Ext JS Grid转换为Excel表格
  2. CSS3与动画有关的属性transition、animation、transform对比
  3. 11g RAC不能启动ohasd进程
  4. C语言经典算法 11-20
  5. 2019长安大学ACM校赛网络同步赛 J Binary Number(组合数学+贪心)
  6. 连续交付友好的Maven版本
  7. NOI 练手题 图像旋转翻转变换
  8. windows10中如何在d盘新建kaoshi.log文件_命令行备份Windows 10驱动amp;设备管理器中安装驱动。...
  9. 三大杀毒软件存严重漏洞,杀软可变黑客工具
  10. JavaScript实现按钮点击上/下一张切换图片
  11. 简单 申请 msn.com邮箱 @
  12. 【参赛时间延长】InterSystems技术写作大赛:Python
  13. 神武手游宠物加点方法及属性参考
  14. html果壳网文本框,打造你的个人网站:CSS来助你美化页面
  15. 技术支持和测试的区别_同步带线性模组 丝杆线性模组和直线电机模组的区别及应用...
  16. 怎么制作画中画视频?学会这几招轻松实现
  17. 仿网易云音乐新版详情页(沉浸式状态栏,上滑隐藏)
  18. 三张照片合成一张照片怎么弄?
  19. 生而自由,爱而无畏。
  20. 推荐几款好用的Linux电子书阅读器(上)

热门文章

  1. 企业网站做SEO优化必走的三条路线,希望新人前方不要右转
  2. 网站转化率做不好多半是这三大因素产生干扰
  3. java手机音乐_JAVA类(手机充电、放音乐示例)
  4. quartus编译错误不支持芯片_硒鼓粉盒芯片不识别、耗材佘量错误、打印机亮红灯问题解决方法...
  5. Kotlin学习 PART 3:类,对象和接口
  6. Cython的简单使用
  7. Linus Torvalds: 成功的项目源于99%的汗水与1%的创新
  8. 记一次Python与C#的AES加密对接
  9. python爬取电影网站信息并写入文件
  10. 算法题:实现一个IP白名单过滤器