C# ASP.NET MVC HtmlHelper

news/2024/7/3 8:43:30
一、Html.ActionLink控件语法
    1、linkText:生成的链接所显示的文字            类型:string
    2、actionName:对应控制器的方法                                       类型:string
    3、routeValues:向对应的action传递的参数         类型:object 或 RouteValueDictionary
    4、controlName:指定控制器的名称             类型:string
    5、htmlAttributes:设置<a>标签的属性                                 类型:object 或 IDictionary
    6、protocol:指定访问协议如:http等            类型:string
    7、hostName:指定访问域名              类型:string
    8、fragment:指定访问锚点                 类型:string

重载一:Html.ActionLink("linkText","actionName")【默认当前页面控制器】
调用:<%: Html.ActionLink("默认当前页面控制器", "About")%>
生成效果:<a href="/Home/About">默认当前页面控制器</a>

重载四:Html.ActionLink("linkText","actionName",routeValues,htmlAttributes)
调用:
  htmlAttributes Is object:
  <%: Html.ActionLink("首页", "Index", "Home", null, new { @class = "active", target = "_blank" })%>
      【注:由于class是保留关键字,所以一定要写成@class】

  htmlAttributes Is IDictionary:
  <%IDictionary<string, object> AttrDictionary = new Dictionary<string, object>();
  AttrDictionary["class"] = "active";
  AttrDictionary["target"] = "_blank";
  %>
生成效果:<a class="active" href="/" target="_blank">首页</a>

重载五:Html.ActionLink("linkText","actionName","controlName","protocol","hostName","fragment",routeValues,htmlAttributes)
调用:<%: Html.ActionLink("关于我们", "About", "Home", "http", "localhost", "top", null, null)%>
生成效果:<a href="http://localhost:12120/Home/About#top">关于我们</a>
========================================================================================================================
========================================================================================================================
ActionLink中QueryString与html属性设置
1: 带有QueryString的写法
2: <%=Html.ActionLink("这是一个连接", "Index", "Home", new { page=1 },null)%>
3: <%=Html.ActionLink("这是一个连接", "Index", new { page=1 })%>
4: 有其它Html属性的写法
5: <%=Html.ActionLink("这是一个连接", "Index", "Home", new { id="link1" })%>
6: <%=Html.ActionLink("这是一个连接", "Index",null, new { id="link1" })%>
7: QueryString与Html属性同时存在
8: <%=Html.ActionLink("这是一个连接", "Index", "Home", new { page = 1 }, new { id = "link1" })%>
9: <%=Html.ActionLink("这是一个连接", "Index" , new { page = 1 }, new { id = "link1" })%>
其生成结果为:
1: 带有QueryString的写法
2: <a href="/?page=1">这是一个连接</a>
3: <a href="/?page=1">这是一个连接</a>
4: 有其它Html属性的写法
5: <a href="/?Length=4" id="link1">这是一个连接</a>
6: <a href="/" id="link1">这是一个连接</a>
7: QueryString与Html属性同时存在
8: <a href="/?page=1" id="link1">这是一个连接</a>
9: <a href="/?page=1" id="link1">这是一个连接</a>
这样就可以使用ActionLink生成近乎所有的地址连接了。


注意,如果连接中不涉及到action及controller就没有必要使用ActionLink,而是直接写HTML代码就可以了,例如
1: <a href="#1">一章</a>
2: <a href="javascript:void(0)" οnclick="delete();">删除</a>


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

1、文本框:input type=text它的name为t1则以下代码:
   <%=Html.TextBox("t1") %>
   让上文中的t1初始时就有一个值,比如 “重典”那么我们可以按以下方式
   <%=Html.TextBox("t1","重典") %>
   如果数据是从数据库中读取,即得到数据是从Action中获取的,那么我们可以在Action中使用ViewData传递
   Action:
      1: ViewData["name"]="重典";
   View:
      1: <%=Html.TextBox("t1",ViewData["name"]) %>
1.1、TextBox
   <%=Html.TextBox("input1") %>
   <%=Html.TextBox("input2",Model.CategoryName,new{ @style = "width:300px;" }) %>
   <%=Html.TextBox("input3", ViewData["Name"],new{ @style = "width:300px;" }) %>
   <%=Html.TextBoxFor(a => a.CategoryName, new { @style = "width:300px;" })%>  
   生成结果:  
   <input id="input1" name="input1" type="text" value="" />
   <input id="input2" name="input2" style="width:300px;" type="text" value="Beverages" />
   <input id="input3" name="input3" style="width:300px;" type="text" value="" />
   <input id="CategoryName" name="CategoryName" style="width:300px;" type="text" value="Beverages" />
1.2TextBox
   <%=Html.TextBox("txtNum", "1", new { @class = "amount", onblur = "equa3()" })%>//文本框失去焦点事件

2、列表数据显示与绑定
   DropDownList或ListBox应该怎么绑定数据及初始化值呢,我们来看看下面的例子:

Action:
   1: ViewData["sel1"] = new SelectList(
   2:     new[] {1, 2, 3} /*列表内容可以是数组*/
   3:     , 3 /*默认值,可以是从数据库读出的*/
   4:     );
View:
   1: <%=Html.DropDownList("sel1")%>
      这样就可以将列表内容、默认值、以及表单元素三者绑定在一起了。而我们的列表内容并不是任何情况下都是数组的,大多情况下还是Key-Value对居多。我们可以使用以下方式:

   1: List<SelectListItem> list = new List<SelectListItem>
   2: {
   3: new SelectListItem {Text = "重典", Value = "1"},
   4:   new SelectListItem {Text = "邹健", Value = "2"},
   5: };
   6: ViewData["sel1"] = new SelectList(
   7:     list /*列表内容可以是数组*/
   8:     , "2" /*默认值,可以是从数据库读出的*/
   9: );

3、TextArea
   <%=Html.TextArea("input5", Model.CategoryName, 3, 9,null)%>
   <%=Html.TextAreaFor(a => a.CategoryName, 3, 3, null)%>
   生成结果:
   <textarea cols="9" id="input5" name="input5" rows="3">Beverages</textarea>?
   <textarea cols="3" id="CategoryName" name="CategoryName" rows="3">Beverages</textarea>

4、CheckBox
   <%=Html.CheckBox("chk1",true) %>
   <%=Html.CheckBox("chk1", new { @class="checkBox"}) %>
   <%=Html.CheckBoxFor(a =>a.IsVaild, new { @class = "checkBox" })%>
   生成结果:  
   <input checked="checked" id="chk1" name="chk1" type="checkbox" value="true" />
   <input name="chk1" type="hidden" value="false" />?
   <input class="checkBox" id="chk1" name="chk1" type="checkbox" value="true" />
   <input name="chk1" type="hidden" value="false" />
   <input checked="checked" class="checkBox" id="IsVaild" name="IsVaild" type="checkbox" value="true" />
   <input name="IsVaild" type="hidden" value="false" />

5、ListBox
   <%=Html.ListBox("lstBox1",(SelectList)ViewData["Categories"])%>?
   <%=Html.ListBoxFor(a => a.CategoryName, (SelectList)ViewData["Categories"])%>?
   生成结果:
   <select id="lstBox1" multiple="multiple" name="lstBox1">?
   <option value="1">Beverages</option>?
   <option value="2">Condiments</option>
   <option selected="selected"value="3">Confections</option>?
   <option value="4">Dairy Products</option>
   <option value="5">Grains/Cereals</option>?
   <option value="6">Meat/Poultry</option>
   <option value="7">Produce</option>?
   <option value="8">Seafood</option>?
   </select>
   <select id="CategoryName" multiple="multiple" name="CategoryName">?
   <option value="1">Beverages</option>
   <option value="2">Condiments</option>?
   <option value="3">Confections</option>
   <option value="4">Dairy Products</option>
   <option value="5">Grains/Cereals</option>?
   <option value="6">Meat/Poultry</option>
   <option value="7">Produce</option>?
   <option value="8">Seafood</option>
   </select>

6、DropDownList
  <%=Html.DropDownList("ddl1", (SelectList)ViewData["Categories"], "--Select One--")%>?
  <%=Html.DropDownListFor(a => a.CategoryName, (SelectList)ViewData["Categories"], "--Select One--", new { @class = "dropdownlist" })%> 
  生成结果:
  <select id="ddl1" name="ddl1">?
  <option value="">--Select One--</option>?
  <option value="1">Beverages</option>?
  <option value="2">Condiments</option>
  <option selected="selected"value="3">Confections</option>
  <option value="4">Dairy Products</option>
  <option value="5">Grains/Cereals</option>?
  <option value="6">Meat/Poultry</option>
  <option value="7">Produce</option>?
  <option value="8">Seafood</option>?
  </select>
  <select class="dropdownlist" id="CategoryName" name="CategoryName">?
  <option value="">--Select One--</option>
  <option value="1">Beverages</option>?
  <option value="2">Condiments</option>
  <option value="3">Confections</option>?
  <option value="4">Dairy Products</option>
  <option value="5">Grains/Cereals</option>
  <option value="6">Meat/Poultry</option>
  <option value="7">Produce</option>?
  <option value="8">Seafood</option>
  </select>

7、Partial 视图模板(自定义控件)
  webform里叫自定义控件。功能都是为了复用。但使用上自定义控件真的很难用好。
  <% Html.RenderPartial("DinnerForm"); %>  看清楚了没有等号的。
  <% Html.RenderAction("Footer", "UserControl");%>

8、Hidden
   <%=Html.Hidden("hidId", ViewData["hidId"])%>
   <%=Html.Hidden("HiddenField6")%>

9、生成Form
   我们当然可以使用纯的Html代码或UrlHelper来生成一个Form。如
   1:<form action="/home/index" method="post"></form>
   1:<form action="<%=Url.Action("Index","Home")%>" method="post"></form>

   但因为是在HTML的属性中,所以还是难以维护,幸好ASP.NET MVC为我们提供了一个Helper,我们可以通过以下两种方式生成一个Form:
   方式一:
         <%using(Html.BeginForm("index","home",FormMethod.Post)){%>
         表单内容
         <%} %>
   方式二:
         <%Html.BeginForm("index", "home", FormMethod.Post);//注意这里没有=输出%>
         表单内容
         <%Html.EndForm(); %>
   BeginForm方法类似于ActionLink的调用方式,所以ASP.NET MVC还提供了BeginRouteForm这种方法。
   当然这里我们也可以使用new{}来为form的action增加querystring或HTML属性,方法与前面介绍的大同小异,参见方法列表即可。

http://www.niftyadmin.cn/n/1996059.html

相关文章

Apache Common BeanUtils 2

jakarta commons 下面有许多已经开发好的好用组 件 我沒记错的话, 应该是讨论到 Net Ftp, 但是你们连结到 Commons 的网页時候, 一定会吓了一跳, 哇, 怎 么会有这么多已经在开发的组件, 还有正在 SandBox ( 研发中 ) 的项目, 所以如何善用之, 就变成我在连续 几周, 都会讨论的课…

【JAVA】Win10实现Java文件的开机自启动(附详细步骤)

一、问题描述随着入了Win10的坑&#xff0c;发现它最不能让人忍受的一点就是强制系统更新&#xff0c;而且系统更新之频繁&#xff0c;简直不能忍。这就导致&#xff0c;对于一些想要一直运行的Java文件&#xff0c;就会造成每次系统更新之后的重启导致Java文件无法继续运行。也…

1.linux文件操作常用命令

linux文件操作: 显示文件 ls 新建文件夹 mkdir 移动文件 mv 删除文件 rm (注:rm -R 删除该文件及其所有的子,是可恢复的)删除文件夹 rm &#xff0d;rf 重命名文件夹mv 进入目录 cd 显示当前路径 pwd

Android MTK6580 客制化关机充电动画

1.客制化关机充电图片 vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/xxx 找到对应分辨率替换 2.调整显示图片位置、大小 vendor/mediatek/proprietary/external/libshowlogo/cust_display.h 3.去掉原充电电池填充及波浪动画 vendor/mediatek/proprietary/boot…

SQL配置用户数据库映射关系

身份验证&#xff1a;Windows 身份验证 登录 安全性——登录名——双击某个用户名——用户映射——选择数据库——确定

Java Web Framework综述

Java Web Framework综述 <script language"javascript" src"/ad/js/edu_left_300-300.js" type"text/javascript"></script> Java Web Framework综述 0.简介 本文介绍Java Web Framework的基本工作原理&#xff0c;和一些常用的开源…

BIOS和DOS中断大全

BIOS和DOS中断大全 中断INT 21H :1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH — 键盘缓冲输入0BH —检测输…

windows10安装最新的redis

官方给的redis的windows版本最新为3&#xff0c;而linux版本是5 这里通过win10子系统安装&#xff0c;win10子系统的配置见另一篇博客https://www.cnblogs.com/MC-Curry/p/10647417.html 操作到换源就可以了 这里我配置了ubuntu18&#xff0c;如果直接从ubuntu的源里下载是4.0版…