1.表单
使用HtmlHelper的扩展类FormExtensions来生成Form,这里重点介绍BeginForm方法,它有13个重载方法,通过重载方法为表单添加属性,像action,method,id,enctype等属性。下面我们用其中一个方法来生成表单:
view plaincopy to clipboardprint?00.<%using(Html.BeginForm("action","controllName", FormMethod.Post)){ %> 00. <%} %>
生成结果
view plaincopy to clipboardprint?
00.<form action="/controllName/action" method="post"></form>
2.表单元素
a.来看一下InputExtensions类中的一些生成元素的常方法,其中每个方法都有重载方法:
• CheckBox方法: 返回复选框 input 元素
• Hidden方法:返回隐藏的 input 元素
• Password方法:返回密码 input 元素
• RadioButton方法:返回用于呈现互斥选项的单选按钮 input 元素
• TextBox方法:返回文本 input 元素
直接上例子:
view plaincopy to clipboardprint?
00.<%using (Html.BeginForm("action", "controllName", FormMethod.Post))
00. { %>
00. 姓名:<%:Html.TextBox("txtName") %><br />
00. 密码:<%:Html.Password("txtPwd") %><br />
00. 性别: <label> 男<%: Html.RadioButton("grp1", "男", true, new { id = "rbtnBoy" })%></label><label>女<%: Html.RadioButton("grp1", "女", false, new { id = "rbtnGril" })%></label> <br />
00. 爱好:<label>游泳<%: Html.CheckBox("chkA") %> </label> <label> 看书<%: Html.CheckBox("chkB") %> </label> <label> 睡觉<%: Html.CheckBox("chkC") %> </label><br />
00. <label>看电视<%: Html.CheckBox("chkD") %> </label> <label>上网 <%: Html.CheckBox("chkE") %> </label> <label> 购物<%: Html.CheckBox("chkF") %> </label><br />
00. <%} %>
结果:
html源码:
view plaincopy to clipboardprint?
00.<form action="/controllName/action" method="post">
00. 姓名:<input id="txtName" name="txtName" type="text" value="" /><br />
00. 密码:<input id="txtPwd" name="txtPwd" type="password" /><br />
00. 性别: <label> 男<input checked="checked" id="rbtnBoy" name="grp1" type="radio" value="男" /></label><label>女<input id="rbtnGril" name="grp1" type="radio" value="女" /></label> <br />
00. 爱好:<label>游泳<input id="chkA" name="chkA" type="checkbox" value="true" /><input name="chkA" type="hidden" value="false" /> </label> <label> 看书<input id="chkB" name="chkB" type="checkbox" value="true" /><input name="chkB" type="hidden" value="false" /> </label> <label> 睡觉<input id="chkC" name="chkC" type="checkbox" value="true" /><input name="chkC" type="hidden" value="false" /> </label><br />
00. <label>看电视<input id="chkD" name="chkD" type="checkbox" value="true" /><input name="chkD" type="hidden" value="false" /> </label> <label>上网 <input id="chkE" name="chkE" type="checkbox" value="true" /><input name="chkE" type="hidden" value="false" /> </label> <label> 购物<input id="chkF" name="chkF" type="checkbox" value="true" /><input name="chkF" type="hidden" value="false" /> </label><br />
00. </form>
b.LinkExtensions类
•ActionLink方法:返回包含指定操作的虚拟路径的定位点元素(a元素)
•RouteLink方法: An anchor element (a element)
例子:
view plaincopy to clipboardprint?
00.<%: Html.ActionLink("点我跳转到其它页面","actionName") %><br />
00. <%: Html.ActionLink("点我跳转到其它页面","actionName","controllerName") %><br />
00. <%: Html.RouteLink("点我跳转到其它页面", new { controller = "Home", action = "List" }, new { id = "link1", @class = "link_hover" })%>
生成html代码:
view plaincopy to clipboardprint?
00.a href="/Home/actionName">点我跳转到其它页面</a><br />
00. <a href="/controllerName/actionName" mce_href="controllerName/actionName">点我跳转到其它页面</a><br />
00. <a class="link_hover" href="/Home/List" mce_href="Home/List" id="link1">点我跳转到其它页面</a>
c.ChildActionExtensions类,包括下面两个方法,每个方法都有六个重载函数
•Action方法:使用指定的參數叫用指定的子系動作方法,並以 HTML 字串形式傳回結果。把目标页镶嵌在本页中
•RenderAction方法:无返回值的方法,也是把目标页镶嵌在本页中
假如在同一个controller下有a,b两个action
如果在a页面上调用 <%:Html.Action("b")%>或者<% Html.RenderAction("b"); %>,哪么显示出来的结果将是b页面镶嵌在a页面中。
下面用例子来验证上面的结果:
在HomeController类中有两个actin,分别是a方法和b方法。
view plaincopy to clipboardprint?
00.public class HomeController : Controller
00. {
00. public ActionResult a()
00. {
00. return View();
00. }
00. public ActionResult b()
00. {
00. return View();
00. }
00. }
下面分别是a页面和b页面中的代码:
view plaincopy to clipboardprint?00.<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 00.<!DOCTYPE html> 00.<html> 00.<head runat="server"> 00. <title>a</title> 00.</head> 00.<body> 00. <div> 00. 这是a页面 00. <%:Html.Action("b") %> 00. </div> 00.</body> 00.</html> 00.--------------------------------- 00.<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 00.<!DOCTYPE html> 00.<html> 00.<head runat="server"> 00. <title>b</title> 00.</head> 00.<body> 00. <div> 00. 这是b页面 00. </div> 00.</body> 00.</html>
在浏览器中输入:http://localhost:12151/home/a 结果如下:(这里会把b页面中html代码全部放入到a页码中 )
这是a页面
这是b页面
在浏览器中输入:http://localhost:12151/home/b 结果如下:
这是b页面
由结果可知:<%:Html.Action("b") %>处的代码把页面中的内容显示到了a页面中.
d:PartialExtensions类,这个类比较简单,是把用户自定义控键呈现在页面上,只有一个方法
•Partial方法:这个方法有4个重载,都很简单
调用这个方法的时候真接把用户自定义好的控键()的名字传入方法中既可:如<%:Html.Partial("partialViewName")%>
这些就会把这个控键的内容在父页面上显示出来了。很简单,大家可以去试一下。
e:SelectExtensions类
•DropDownList方法
•ListBox方法
对于上面两个方法,一看名字就知道是干啥用的,就不细说了。。
DropDownList小例:
view plaincopy to clipboardprint?00.<%: Html.DropDownList("国家", new SelectListItem[] { 00. new SelectListItem() { Text = "中国", Value = "中国" }, 00. new SelectListItem() { Text = "印度", Value = "印度" }, 00. new SelectListItem() { Text = "鹅国", Value = "鹅国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }} 00. )%> 00. <%: Html.ListBox("国家", new SelectListItem[] { 00. new SelectListItem() { Text = "中国", Value = "中国" }, 00. new SelectListItem() { Text = "印度", Value = "印度" }, 00. new SelectListItem() { Text = "鹅国", Value = "鹅国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }, 00. new SelectListItem() { Text = "钱国", Value = "钱国" }} 00. )%>
结果图:
生成Html源码:
view plaincopy to clipboardprint?00. <select name="国家"><option value="中国">中国</option> 00.<option value="印度">印度</option> 00.<option value="鹅国">鹅国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.</select> 00. 00. <select multiple="multiple" name="国家"><option value="中国">中国</option> 00.<option value="印度">印度</option> 00.<option value="鹅国">鹅国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.<option value="钱国">钱国</option> 00.</select>
些外还有其它一些扩展类,像
TextAreaExtensions,ValidationExtensions等。。
完成任务
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wanggang421338916/archive/2011/04/06/6304115.aspx
评论