Asp.net MVC中关于@Html标签Label、Editor使用

转载 2016年08月30日 15:04:08
@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html
在@Html中,带有For的主要是针对强类型的Html类型。
用于说明@Html中标签,定义Student对象用于辅助说明,
[csharp] view plain copy
  1. public class Student  
  2. {  
  3.   /// <summary>  
  4.         /// 姓名  
  5.         /// </summary>  
  6.         ///   
  7.         [DisplayName("姓名")]  
  8.         public string Name  
  9.         {  
  10.             get;  
  11.             set;  
  12.         }  
  13.   
  14.   
  15.         /// <summary>  
  16.         /// 年龄  
  17.         /// </summary>  
  18.         public int Age  
  19.         {  
  20.             get;  
  21.             set;  
  22.         }  
  23. }  


在cshtml页面定义@model Student
Label标签,在LabelExtensions类中实现
1、 @Html.Label()
返回一个 HTML label 元素和由指定表达式表示的属性的属性名称。
参数:string expression,string labelText
expression:一个表达式表示要显示的属性
labelText:显示文字
例: 
[html] view plain copy
  1. @Html.Label("weight")       输出:<label for="weight">weight</label>  
  2. abel("name","姓名")  输出:<label for="name">姓名</label>  

2、 @Html.LabelFor()
和@Html.Label()类似,只是主要针对强类型
例:
[html] view plain copy
  1.        @Html.LabelFor(model=>mode.Name) 输出:  <label for="Name">Name</label>  
  2. @Html.LabelFor(model=>mode.Name,"姓名") 输出:<label for="name">姓名</label>  
  3. 如果在上面实体添加[DisplayName("姓名")]特性(引用System.ComponentModel;)则会显示:  
  4. <label for="Name">姓名</label>用于显示汉字很方便  

3、 @Html.LabelForModel()
例:@Html.LabelForModel("name") 输出: <label for="">name</label>

Editor标签,表示应用程序中的Input表单控件,在EditorExtensions实现
1、 @Html.Editor() 
返回一个由表达式表示的对象中的每个属性所对应的input元素
例:
[html] view plain copy
  1. a、@Html.Editor("name") 输出;<input class="text-box single-line" id="name" name="name" type="text" value="" />  

b、在加载的时候为input初始化值,这里用asp.net MVC新增的ViewBag属性;
[html] view plain copy
  1.      @{  
  2.     ViewBag.NameValue="张三"; // NameValue为动态类型  
  3.     或者  
  4.     ViewData["NameValue"]="张三";  
  5. }  
  6. @Html.Editor("NameValue") 输出<input class="text-box single-line" id="NameValue" name="NameValue" type="text" value="张三" />  

c、@Html.Editor("name",Model.Name)
  第二个参数为object additionalViewData 参数 主要为视图模型的数据 (Model为System.Web.Mvc.Model对象,在加载页面引用@model Student 对象),
  但不知道这样Input为什么没显示默认值。不知道不是不asp.net mvc3中不支持了,希望知道的给予说明下。
2、 @Html.EditorFor()
返回一个由表达式表示的对象中的每个属性所对应的input元素,主要是针对强类型,一般这种方式用得多些
a、@Html.EditorFor(mode=>mode.Name)
如果返回的View给Student实体赋予值,则输出输出<input class="text-box single-line" id="Name" name="Name" type="text" value="默认值" />否则Value为"";
b、@Html.EditorFor(mode=>mode.Name,"templateName")
第二个参数为模版名称,模版的定义:
首先在目录View/Shared/建立文件夹EditorTemplates/templateName.cshtml 即:View/Shared/EditorTemplates/templateName.cshtml
注:这务必用EditorTemplates作为文件夹
templateName.cshtml代码为: @Html.DropDownList("",new SelectList(new []{"1","2","3"}))表示一个值为1,2,3的下拉列表
这时就可以调用@Html.EditorFor(mode=>mode.Name,"templateName"),则显示成一个下拉列表,如果模版中设置的一个文本框则显示成文本框。
同时,也可以在实体Student中的Name属性加上[UIHint("templateName")]特性 如果加上这个则可在调用的时候不用显示指定模版名称
用@Html.EditorFor(mode=>mode.Name)即可显示成下拉框,同时所有用这个字段的都将变成下拉列表
相当与Html中的Input控件
@Html.EditorFor(model=>model.Age)
页面显示为:   <input id="Age" name="Age" type="text" value="" />
3、 @Html.EditorForModel()
如果使用默认值,不带任何参数,则循环显示Model中所有的信息,不过需要放在循环中
如:<input class="text-box single-line" id="Name" name="Name" type="text" value="" />
   <input class="text-box single-line" id="Age" name="Age" type="text" value="" />

Asp.net MVC中关于@Html标签的使用

@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html 在@Html中,带有For的主要是针对强类型的Html类型。 用于...
  • gongth_12
  • gongth_12
  • 2013年09月17日 16:31
  • 6676

Asp.net MVC中关于@Html标签Label、Editor使用

@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html 在@Html中,带有For的主要是针对强类型的Html类型。 用于...
  • syaguang2006
  • syaguang2006
  • 2014年07月04日 11:34
  • 555

ASP.NET MVC显示HTML字符串

一些html经HtmlEncode后,如“<span>测试数据</span>”。现需要把这些内容正常显示于asp.net mvc的视图内。 举个例子来解决与说明,先创...
  • linybo
  • linybo
  • 2015年07月07日 10:58
  • 679

.net mvc3.0中带html标签的值显示在页面中不被转义的方法

比如 ViewBag.html = "";    如果在cshtml中写 @ViewBag.html将输出 <div></div>   如果在cshtml中写 @{...
  • u010032207
  • u010032207
  • 2017年02月13日 18:44
  • 1156

自定义ASP.NET MVC Html辅助方法

在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明。有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么...
  • a497785609
  • a497785609
  • 2015年12月05日 11:50
  • 2327

HTML中label的两种使用方法

转载自:http://www.cnblogs.com/kingwell/archive/2012/09/28/2707132.html 如果您在 label 元素内点击文本,就会触发此控件。...
  • u010874036
  • u010874036
  • 2016年04月22日 21:04
  • 1681

ASP.NET数据绑定在HTML里有条件判断语句的写法-“三元运算符”

ASP.NET数据绑定在HTML里有条件判断语句的写法-“三元运算符”
  • yangyisen0713
  • yangyisen0713
  • 2015年09月09日 16:32
  • 2846

MVC Asp.Net Mvc在cshtml中输出html

今天在做项目的时候有一个问题就是需要在控制器中拼接html,然后直接的cshtml中显示效果,一开始是直接输入发现在页面上显示了html代码,这个明显不是我要的效果, 于是就开始百度,经过几分钟的查...
  • yygzs2012
  • yygzs2012
  • 2017年03月24日 11:12
  • 188

asp.net mvc 返回一个纯html页面

我们采用的方式是,表单自定义,用web编辑器即可。 提取表单网页中的文本框等组成对应数据表的字段。 字段的长度,数据类型用文本框的样式来记录,如txt_user.style.dataLen...
  • mituan1234567
  • mituan1234567
  • 2015年07月09日 16:30
  • 885

HTML基础之label标签

我们知道一个完整的表单是由表单标签与其中包裹的各种表单控件组成的。label标签是一种常见的表单控件。它的作用是使用户在填写表单的项目时有更好的体验。比如说如下这个例子E-mail:        ...
  • SnowShenYong
  • SnowShenYong
  • 2016年09月12日 09:27
  • 2870
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Asp.net MVC中关于@Html标签Label、Editor使用
举报原因:
原因补充:

(最多只允许输入30个字)