通过前几篇文章,我们通过ASP.NET MVC创建了一个简单的应用程序,学习了ASP.NET MVC的基本框架和工作流程。但是Demo中很多东西都是VS为我们自动生成的,比如View的html代码等。此文和大家一起学习一下ASP.NET MVC 中的Helper (辅助方法) --> HtmlHelperUrlHelper
何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组,主要的目的就是实现将界面与逻辑分离。

HtmlHelper

ASP.NET MVC提供了一个HtmlHelper用于生成Html标签和有数据绑定的Html标签。
1.ActionLink
其中最常用的就是Html.ActionLink。
ActionLink中的三个参数分别为:显示的文字,Action ,Controller 。其中Controller可以省略,省略时指向同一Controller下的Action。
---基本应用:

<%=Html.ActionLink("Hello", "Index", "Home")%>

在UrlRouting规则为默认规则的情况下,它生成的HTML代码为:<a href="/">Hello</a>
---带有QueryString的写法:

<%=Html.ActionLink("Hello", "Index", "Home", new { page=1 },null)%>

-------<a href="/?page=1">Hello</a>
如果连接中不涉及到action及controller就没有必要使用ActionLink,而是直接写HTML代码就可以了。<a href="#">Hello</a>
2.Html表单元素
(1) Form:
我们当然可以使用纯的Html代码:
<form action="/home/index" method="post"></form>
但是因为是在HTML的属性中,所以还是难以维护,ASP.NET MVC为我们提供了一个Helper,我们可以通过以下两种方式生成一个Form:

<%using(Html.BeginForm("index","home",FormMethod.Post)){%>表单内容  
<%} %>

<%Html.BeginForm("index", "home", FormMethod.Post);%>表单内容  
<%Html.EndForm(); %>

(2) 其他html标签:
ASP.NET MVC提供了多种表单元素的Helper。其中包括:TextBox(类似input type=text)、TextArea、DropDownList(select)、CheckBoxHidden、ListBox、Password、RadionButton。

如果我们想提供一个input type=text 它的name为t1则以下代码:

<%=Html.TextBox("t1") %>

(3) 表单元素绑定
如果我们想要让上文中的t1初始时就有一个值:

<%=Html.TextBox("t1","Hello") %>

如果数据是从数据库中读取,即得到数据是从Action中获取的,那么我们可以在Action中使用ViewData传递。

Action:
ViewData["text"]="Hello";
View:
<%=Html.TextBox("t1",ViewData["text"]) %>

UrlHelper

1.UrlHelper.Action
UrlHelper的Action方法 用于生成一个URL地址:
Controller下Index:<%=Url.Action(“Index”)%> --------index
Controller下Index:<%=Url.Action(“Index”,new{id=1})%> --------index?id=1
UsersController下Index:<%=Url.Action(“Index”,"Users")%> --------/Users/index
UsersController下Index: <%=Url.Action(“Index”,"Users",new{id=1})%> /Users/index?id=1
在View中写Url.Action("Index","Home"),运行后则会生成/Home/Index这个地址。

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

3.UrlHelper.Content
用于服务器路径转换为绝对路径。如:
<%=Url.Content("~/content/site.css") %>最后的结果为:/content/site.css

转载于:https://www.cnblogs.com/gaoweipeng/archive/2009/08/23/1552281.html

学习 ASP.NET MVC (第五回)理论篇相关推荐

  1. 学习 ASP.NET MVC (第二回)实战篇

    上篇简单的了解了ASP.NET MVC的基本概念和基本流程,接下来的几篇将通过简单的实例,来看看如何通过ASP.NET MVC创建应用程序.Demo很简单也很基础,高手绕过.   闲话少说,直接进入正 ...

  2. 艾伟_转载:学习 ASP.NET MVC (第五回)理论篇

    本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回) ...

  3. 学习ASP.NET MVC系列 - 还有比这更简炼的吗?把复杂的事情变简单了,贡献啊!...

    转自 学习ASP.NET MVC系列: 学习ASP.NET MVC(一)--我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)--我的第一个ASP.NET MVC 控制器 学习 ...

  4. 从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例 【转】

    一.摘要 一个Url请求经过了Routing处理后会调用Controller的Action方法. 中间的过程是怎样的? Action方法中返回ActionResult对象后,如何到达View的? 本文 ...

  5. 《从零开始学习ASP.NET MVC 1.0》-开天辟地入门篇

    <从零开始学习ASP.NET MVC 1.0> 文章导航 (一) 开天辟地入门篇 (二) 识别URL的Routing组件 (三) Controller/Action 深入解析与应用实例 ( ...

  6. 从零开始学习ASP.NET MVC 入门

    <从零开始学习ASP.NET MVC 1.0> 文章导航 (一) 开天辟地入门篇 (二) 识别URL的Routing组件 (三) Controller/Action 深入解析与应用实例 ( ...

  7. 从零开始学习ASP.NET MVC 1.0 (一)

    从零开始学习ASP.NET MVC 1.0 (一) MVC1.0下载地址:http://www.microsoft.com/download/en/details.aspx?id=5388 博客园:h ...

  8. 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 - 强烈推荐!!!

    一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 本文根据<Professional ASP.NET MVC 1.0>中微软牛人Scott Guthrie 提供 ...

  9. 艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper

    本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [ ...

  10. ASP.NET MVC 过滤器(五)

    ASP.NET MVC 过滤器(五) 前言 上篇对了行为过滤器的使用做了解说,假设在控制器行为的运行中遇到了异常怎么办呢?没关系,还好框架给我们提供了异常过滤器,在本篇中将会对异常过滤器的使用做一个大 ...

最新文章

  1. Python PIL ImageDraw 和ImageFont模块学习
  2. pil库修改图片大小_Gvcode库:一个更简单的、华人开源的、自动生成验证码的python库...
  3. java 单例 读写锁_你用对锁了吗?浅谈 Java “锁” 事
  4. python右对齐函数_Python这68个内置函数,建议你吃透!
  5. [20170209]索引范围访问2.txt
  6. 正确姿势使用arm-linux-androideabi-addr2line
  7. FlinkKafkaProducer源码分析
  8. 移动端Vin码识别-车架号识别SDK
  9. 2009年最极品的冷笑话汇集!(超经典)
  10. 代码随想录第六天 LeetCode 242、349、202、1 (哈希表)
  11. web前端开发和后端开发哪个好?
  12. 请开启微信或者手机定位服务器,微信在哪里设置定位(微信开启定位功能设置)...
  13. 五百亿!又一大型平台崩了!85后女老板跑路!
  14. 仿微信表情输入键盘(支持 Gif 表情图文混排 )
  15. 【Router】PC连接到路由LAN,但是无法获取到IP地址问题分析及解决方案
  16. 化学反应中的能量变化
  17. Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍
  18. linux中查看隐藏文件夹_如何在Linux中隐藏图像中的文件或文件夹
  19. javascript最常用的技巧
  20. 根轨迹法不完全笔记(自动控制原理)

热门文章

  1. ssl客户端与服务端通信的demo
  2. IEnumerable.Select和SelectMany的区别
  3. Jquery事件委托之Safari
  4. iOS开发内存泄露修复
  5. VS2008中 没有QT的代码智能提示
  6. 【重点:DP 双指针 栈】LeetCode 42. Trapping Rain Water
  7. Hello Rails
  8. TCP连接发送窗口问题思考
  9. latex 论文绘图: 图像文字重叠
  10. Bristol的第18篇密码学