首页 > 代码库 > MVC HtmlHelper

MVC HtmlHelper

在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,微软的MVC就是传统的“请求--处理--响应”的回归。

微软为开发人员快速开发前台页面提供了丰富的HtmlHelper的辅助类,辅助我们快速开发前台页面,也提供了可扩展的接口,前台页面的标签可以做到高度可重

Url.Action  常用

修改路由规则,将 / 修改为 - 后,访问地址变为:http://localhost:11614/Home-Index

<a href="http://www.mamicode.com/UserInfo/index">转到指定页面</a>
<%-- 控制器跳控制器 需要把控制器名加上 没有控制器名:在同一个控制器中跳方法--%>
<a href="http://www.mamicode.com/<%= Url.Action("index","UserInfo") %>">转到指定页面</a>

<%= Url.Action("index","UserInfo")  string类型   会自动匹配路由器规则

第一个参数:方法名

第二个参数:控制器名

Html.ActionLink     

 

HtmlHelper也提供类似的操作:   <%= Html.ActionLink(“用户列表","Index","UserInfo") %>   == <a href="http://www.mamicode.com/UserInfo/index">用户列表</a>

更加便捷的生成超级链接功能,详细使用请参考“参数提示”功能

Html.ActionLink传参     参数的个数需要根据你的重载来给 这边传值命名为什么,后台就是什么,注意类型 uid 后台申明一个uid 来接受

<%= Html.ActionLink("用户列表链接", "Index", "UserInfo", new { uid = "1" }, new { @class = "cc" })%>

参数1:生成的超链接文本

参数2:请求的Action名称

参数3:请求的Controller名称

参数4:请求超链接的参数集合

参数5:请求超链接的属性集合,关键字用@声明

技术分享

  

HtmlHelper控件

文本框中添加属性:placeholder(占位符)  会有个提示,直到此文本框中有文本就会消失

<%= Html.TextBox("username", null, null, new { placeholder="在此输入用户名"})%>    HtmlHelper生成TextBox控件

参数1:控件name和id属性值

参数2:默认值,没有值给NULL

参数3:文本格式,没有格式给NULL

参数4:属性集合(匿名对象)

 技术分享

试一试(参数参照提示设置)

技术分享

技术分享

<%= Html.DropDownList("City") %> 运行后并没有像刚才一样成功呈现控件

分析错误信息,提供满足它需要的类型

“Enumerable<SelectListItem>”类型的 ViewData 项“

1,直接为这个控件赋值

  <%=Html.DropDownList("City",new SelectListItem[]{                    new SelectListItem{Text="武汉",Value=http://www.mamicode.com/"wh",Selected=true},                     new SelectListItem{Text="深圳",Value=http://www.mamicode.com/"sz",Selected=false},                      new SelectListItem{Text="上海",Value=http://www.mamicode.com/"sh",Selected=false}}                    )%>

2,在后台提供它需要的类型

技术分享

 

 简单装备

 在用户实例博客中做添加用户方法时,是获取前台控件里面的值,在实例一个新的用户,为这个用户赋值,在添加到数据库中

  现在很简单,如下:  

public ActionResult ProcessAdd(Users user)  //提供一个用户,用来添加        {                      //需要前台里面的HtmlHelper类中控件的名称命名跟数据库里面的字段一样            //user.UserName = Request.Form["UserName"].ToString();  这一步系统帮你做,自己可不用写,简化了代码            //此过程是个双向的,可以从前台控件中把值赋给用户,也可以把数据拿到前台 ---以后补充            dc.Users.InsertOnSubmit(user);            dc.SubmitChanges();  //更新数据库            return RedirectToAction("Index");  //返回到指定试图        }

前台控件写法:

          <td>                        <%=Html.TextBox("UserName") %></td>                        <td>                         <%=Html.TextBox("UserPwd")%></td>                    <td>                        <%=Html.CheckBox("Sex") %>男  </td>

 

参数的个数需要根据你的重载来给              这边传值命名为什么,后台就是什么,注意类型   uid    后台申明一个uid 来接受

 

MVC HtmlHelper