ASP.NET MVC框架@Html问题

@Html.Raw() 方法输出带有html标签的字符串,如:

@Html.Raw("<divstyle='color:red'>输出字符串</div>")

结果:输出字符串

 

 

@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html

在@Html中,带有For的主要是针对强类型的Html类型。

 

1、 @Html.Label()

返回一个 HTML label 元素和由指定表达式表示的属性的属性名称。

@Html.Label("weight")       输出:<labelfor="weight">weight</label> 

@Html.Label("name","姓名")  输出:<labelfor="name">姓名</label>

 

2、 @Html.LabelFor()

和@Html.Label()类似,只是主要针对强类型

@Html.LabelFor(model=>mode.Name) 输出:  <labelfor="Name">Name</label> 

@Html.LabelFor(model=>mode.Name,"姓名") 输出:<labelfor="name">姓名</label> 

 

3、@Html.LabelForModel()

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

 

Editor标签,表示应用程序中的Input表单控件,在EditorExtensions实现

1、 @Html.Editor()

返回一个由表达式表示的对象中的每个属性所对应的input元素

a、@Html.Editor("name")输出;

<input class="text-boxsingle-line" id="name" name="name"type="text" value="" /> 

 

b、在加载的时候为input初始化值,这里用asp.netMVC新增的ViewBag属性;

 @{ 

   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)

  第二个参数为objectadditionalViewData 参数主要为视图模型的数据(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)

页面显示为:   <inputid="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-boxsingle-line" id="Age" name="Age" type="text"value="" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值