博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
艾伟_转载:学习 ASP.NET MVC (第五回)理论篇
阅读量:6941 次
发布时间:2019-06-27

本文共 2026 字,大约阅读时间需要 6 分钟。

本系列文章导航

通过前几篇文章,我们通过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代码为:

---带有QueryString的写法:

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

 -------

如果连接中不涉及到action及controller就没有必要使用ActionLink,而是直接写HTML代码就可以了。
2.Html表单元素
(1) Form:
我们当然可以使用纯的Html代码:
但是因为是在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

转载地址:http://whnnl.baihongyu.com/

你可能感兴趣的文章
深入理解javascript作用域系列第三篇——声明提升(hoisting)
查看>>
mybatis_helloWorld_sequence图(3)
查看>>
使用fastcgi_finish_request提高页面响应速度
查看>>
深入理解哈希表
查看>>
【python】编码
查看>>
LaTex Remove Left Margin 去除左边空间
查看>>
树莓派进阶之路 (006) - 树莓派安装wiringPi
查看>>
泛在传感器网络(Ubiquitous Sensor Network; USN)
查看>>
如何解决exe4j生成exe文件后弹出提示信息
查看>>
第六十节,文本元素标签
查看>>
Dapper ORM VS SqlSugar ORM的 8场对决
查看>>
详解MySQL性能优化(二)
查看>>
详解KMP算法【转】
查看>>
计算机网络中通信协议都有哪些
查看>>
CentOS挂Windows的NFS备忘
查看>>
【死磕jeesite源码】mybatis动态调用表名和字段名
查看>>
【C002】Excel VBA - 文件打开关闭
查看>>
对WF工作流异常(Event on interface type for instance id cannot be delivered)的一点总结....
查看>>
目前常用的加密解密算法
查看>>
近期的一点感慨
查看>>