Asp.net MVC中关于@Html标签Label、Editor使用
2013-09-09 11:40
507 查看
Asp.net MVC中关于@Html标签Label、Editor使用
分类: asp.net MVC 2011-12-21 23:35 4578人阅读 评论(0) 收藏 举报htmlasp.netmvcinputclassstring
@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html
在@Html中,带有For的主要是针对强类型的Html类型。
用于说明@Html中标签,定义Student对象用于辅助说明,
[csharp] view plaincopy
public class Student
{
/// <summary>
/// 姓名
/// </summary>
///
[DisplayName("姓名")]
public string Name
{
get;
set;
}
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get;
set;
}
}
在cshtml页面定义@model Student
Label标签,在LabelExtensions类中实现
1、 @Html.Label()
返回一个 HTML label 元素和由指定表达式表示的属性的属性名称。
参数:string expression,string labelText
expression:一个表达式表示要显示的属性
labelText:显示文字
例:
[html] view plaincopy
@Html.Label("weight") 输出:<label for="weight">weight</label>
abel("name","姓名") 输出:<label for="name">姓名</label>
2、 @Html.LabelFor()
和@Html.Label()类似,只是主要针对强类型
例:
[html] view plaincopy
@Html.LabelFor(model=>mode.Name) 输出: <label for="Name">Name</label>
@Html.LabelFor(model=>mode.Name,"姓名") 输出:<label for="name">姓名</label>
如果在上面实体添加[DisplayName("姓名")]特性(引用System.ComponentModel;)则会显示:
<label for="Name">姓名</label>用于显示汉字很方便
3、 @Html.LabelForModel()
例:@Html.LabelForModel("name") 输出: <label for="">name</label>
Editor标签,表示应用程序中的Input表单控件,在EditorExtensions实现
1、 @Html.Editor()
返回一个由表达式表示的对象中的每个属性所对应的input元素
例:
[html] view plaincopy
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 plaincopy
@{
ViewBag.NameValue="张三"; // NameValue为动态类型
或者
ViewData["NameValue"]="张三";
}
@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标签Label、Editor使用
- Asp.net MVC中关于@Html标签Label、Editor使用
- Asp.net MVC中关于@Html标签Label、Editor使用
- Asp.net MVC中关于@Html标签Label、Editor使用
- Asp.net MVC中关于@Html标签Label、Editor使用
- Asp.net MVC中关于@Html标签Label、Editor使用
- Asp.net MVC中关于@Html标签的使用
- Asp.net MVC中关于@Html标签的使用
- Asp.net MVC中关于@Html标签的使用
- 关于asp.net mvc 使用ueditor添加内容 前端只显示原样标签的问题
- asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染
- ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解
- asp.net控件开发技巧(1)使用HtmlTextWriter类规范输出标签
- 在asp.net mvc中使用PartialView返回部分HTML段
- asp.net的mvc开发标签的使用
- Asp.net MVC 3 Razor 视图引擎 中使用@输出的内容都会被自动进行HTML编码 问题的解决办法
- dhl: 在 ASP.NET MVC 中创建自定义 HtmlHelper 使用扩展方法创建 HTML Helper
- 详解使用asp.net mvc部分视图渲染html
- 在asp.net mvc中使用PartialView返回部分HTML段
- 在asp.net mvc中使用PartialView返回部分HTML段