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

@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. /// <summary>
  14. /// 年龄
  15. /// </summary>
  16. public int Age
  17. {
  18. get;
  19. set;
  20. }
  21. }

在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="" />

时间: 2024-10-12 09:17:02

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

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

@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html在@Html中,带有For的主要是针对强类型的Html类型. 用于说明@Html中标签,定义Student对象用于辅助说明, [html] view plain copy public class Student { /// <summary> /// 姓名 /// </summary> /// [DisplayName("姓名")]

Asp.Net MVC中使用ACE模板之Jqgrid

第一次看到ACE模板,有种感动,有种相见恨晚的感觉,于是迅速来研究.它本身是基于bootstrap和jqueryui,但更nice,整合之后为后台开发节省了大量时间. 发现虽然不是完美,整体效果还是不错,特此分享给园友.这一节先讲其中的Jqgrid.按照国际惯例,先上两张图. 集成了button,form,treeview以及日历,时间轴.chart等控件,非常丰富.下面是Jqgrid在MVC中的使用. jqgrid的加载,排序,查找都是基于后台方法,不是在内存中完成,但也有一些小坑.下面一一道

警惕ASP.NET MVC中的ValidateInputAttribute

最近在做一个ASP.NET MVC项目的时候发现,有一个Controller的Action死活都没法接收到从客户端提交过来的Html表单请求和数据,后来才发现是因为默认情况下ASP.NET MVC在执行Controller的代码前,会对客户端提交到服务器的数据做安全性验证,如果ASP.NET检测到客户端提交的数据中有危险数据(危险数据一般是一些关键字和关键符号),那么就会中断当前客户端提交的请求并且引发一个异常,那么客户端提交的数据自然就不会进入到Controller和Action了.主要原因是

MVC 中输出Html标签的方法

@: item.content 用过ASP.NET MVC的人都知道,这是MVC的基本输出的方式,但是最近我在写一个页面的时候,却碰上了一个问题,我需要在一个div中输出一个<br />标签,然而他却直接把<br />给输了出来,这确实让人很郁闷. 我看了一下代码,原来在输出的时候,这种方式直接把<和>给变换成了<和>,所以我想尽任何编码解码的方式想要把这个给还原出来,然而什么都没有效果. 在不断摸索之后我发现了简单的不能再简单的方法, @(new Html

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分. ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一.捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站.有许多可以减少 CS

在 ASP.NET MVC 中使用 HTML Helpers 的那些事

在 ASP.NET MVC 中使用 HTML Helpers 方法,可以返回得到标准的 HTML 标签,就像 <input>.<button> 或者 <img> 等等. 同样,你也可以创建自己的 HTML Helpers 方法,生成更加复杂的 HTML 内容. 几种不同类型的 HTML Helpers 从以下三种类型去考察 HTML Helpers 的创建和使用 01 在 View 中创建并重复使用 1 @helper ListingItems(string[] ite

在 Asp.NET MVC 中使用 SignalR 实现推送功能 [转]

在 Asp.NET MVC 中使用 SignalR 实现推送功能 罗朝辉 ( http://blog.csdn.net/kesalin ) CC许可,转载请注明出处 一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息. 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯. 二,实现机制

在Asp.Net MVC中PartialView与EditorFor和DisplayFor的区别

相同之处: PartialView, EditorFor 和 DisplayFor 都可以用作来实现页面的公共部分,其他页面可以根据需求来引用. 不同之处: PartialView 是从Page的角度来处理,因此主 Page 和 PartialView 一般用相同的Model,这样做可以实现PartialView中所对应字段的编辑功能:如果PartialView使用的是主Page中Model的子Model,那么只能实现Partial View所对应Model的显示功能. 具体的引用方式为: @H

004.ASP.NET MVC中的HTML Helpers

原文链接:http://www.codeproject.com/Articles/794579/ASP-NET-MVC-HTML-Helpers-A-MUST-KNOW 1.什么是HTML Helpers 想像HTML Helpers的方法返回一个字符串,是的,它返回的字符串是带有HTML标签的字符串.比如一个img标签.一个a标签,等其它的标签. 有ASP.NET开发经验的人开发人员能使用HTML Helpers用于Web Form服务器控件的编写,因为它们两有一个共同的目标.但是HTML H