Html.text(转载)
2、Html.ValidationSummary:用来显示ModelState字典中所有验证错误的无序列表,使用布尔值类型参数(true)来告知辅助方法排除属性级别的错误,只显示ModelState中与模型本身有关的错误,而不显示与具体模型属性相关的错误。
3、示例:
ModelState.AddModelError("", "This is all wrong!");
ModelState.AddModelError("Title", "what a terrible name!");
在控制器某个操作中添加以上代码用来渲染编辑视图,
第一个错误是模型级别的,因为代码中没有提供关联错误与特定属性的键,
第二个错误是与属性相关联的错误,因此在视图验证摘要区不会显示这个错误
添加输入元素
1、Html.TextBox(和Html.TextArea)
调用形式如下:
@Html.TextBox("Title",Model.Title);
@Html.TextArea("text","Hello");
重载版本:@Html.TextArea("text","hello world",10,80,null);
渲染为<textarea cols="80", id="text" name="text" rows="10">hello world</textarea>
1、通过辅助方法赋予与Viewbag中的值相同的名称显示文本框的价格
如:在控制器中:ViewBag.Price=10.0;
在视图中:@Html.TextBox("Price");
如:在控制器中:ViewBag.Album=new Album{ Price=11};
在视图中: @Html.TextBox("Album.Price");
2、辅助方法依靠强类型的视图数据也能很好的工作
如:在控制器中:var album=new Album{ Price=12.0};
在视图(强类型)中:@Html.TextBox("Price");
3、向表单辅助方法提供显示的值
在控制器中:var album=storeDB.Albums.Single(a=>a.AlbumId==id);
ViewBag.Genres=new SelectList(storeDB.Genres.OrderBy(g=>g.Name),"GenerId","Name",album.GenreId);
在视图(强类型)中: @Html.TextBox("Title",Model.Title);
强类型辅助方法
该方法需要为其传递一个lambda表达式来指定要渲染的模型属性,且表达式的模型必须和为视图指定的模型类型一致。
例:@Html.LabelFor(m=>m.GenreId);
@Html.DropDownListFor(m=>m.GenreId,ViewBag.Genres as SelectList)
@Html.ValidationMessageFor(m=>m.Title)
这些强类型的辅助方法名都以For作为其后缀,使用lambda表达式可是轻松实现代码的重构
public ActionResult HtmlText()
{
ViewData["Name"] = "jade";
var user = new User() { Name = "jim", Age =32 };
ViewData.Model = user;
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Kirin", Value = "29" });
items.Add(new SelectListItem { Text = "Jade", Value = "28", Selected = true });
items.Add(new SelectListItem { Text = "Yao", Value = "24" });
this.ViewData["list"] = items;
List<SelectListItem> items2 = new List<SelectListItem>();
items2.Add(new SelectListItem { Text = "Kirin", Value = "29" });
items2.Add(new SelectListItem { Text = "Jade", Value = "28" });
items2.Add(new SelectListItem { Text = "Yao", Value = "33" });
this.ViewData["list2"] = items2;
this.ViewData["selected"] = 33;
ViewBag.Album = new Album { Price = 11 };
return View();
}

ASP.NET MVC提供了多种表单元素的Helper。其中包括:TextBox(类似input type=text,下面类似)、TextArea、DropDownList(select)、CheckBoxHidden、ListBox、 Password、RadionButton。注意:因为<input type=”submit” />一般情况下是不会绑定数据的所以ASP.NET MVC并未提供此Helper(曾经提供过在preview2之前)。如果我们想提供一个input type=text 它的name为t1则以下代码:1: <%=Html.TextBox("t1") %>
3.3表单元素绑定
如果我们想要让上文中的t1初始时就有一个值,比如
“重典”那么我们可以按以下方式1: <%=Html.TextBox("t1","重典")
%>如果数据是从数据库中读取,即得到数据是从Action中获取的,那么我们可以在Action中使用ViewData传递Action:1:
ViewData["name"]="重典";View:1: <%=Html.TextBox("t1",ViewData["name"])
%>以上方法看似简单,其实ASP.NET
MVC为我们提供了更为简便的绑定方式---只要保证ViewData的Key与Helper所生成元素的name保持一致就可以自动绑
定:Action:1: ViewData["t1"]="重典";View:1: <%=Html.TextBox("t1")
%>这样就可以自动绑定了
3.4列表数据显示与绑定
像TextBox这种值单一的数据比较容易,但是存在的数据比较多的
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:
);
10.TextBox , Hidden
<%=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" />
11.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>
12.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" />
13.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>
14.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>
Html.text(转载)的更多相关文章
- Convert HTML to Text(转载)
原文地址:http://www.blackbeltcoder.com/Articles/strings/convert-html-to-text Download Source Code Intro ...
- 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...
- Python 爬虫入门(requests)
相信最开始接触Python爬虫学习的同学最初大多使用的是urllib,urllib2.在那之后接触到了第三方库requests,requests完全能满足各种http功能,真的是好用爆了 :D 他们是 ...
- 一不小心写了个bootstrap风格下拉控件 JqueryUI + bootstrap
受够了EasyUI的封闭,Bootstrap虽然华丽但是功能太渣,闲着无聊写个下拉控件玩玩吧,不喜勿喷哈... 第一步:先设计下我的下拉控件的样子 1.既然是bootstrap风格的,我想应该是这样的 ...
- Python request SSL证书问题
错误信息如下: 1 requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_s ...
- 递归查询区域信息及子区域到advTree
效果: DataTable dtArea = new DataTable(); private void Form1_Load(object sender, EventArgs e) { Node n ...
- 爬虫必备—requests
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得 ...
- web前端开发 代码规范 及注意事项
web前端开发 代码规范 及注意事项 外部命名规范 html .js .css文件名称命名规范 my_script.js my_camel_case_name.css my_index.html 路径 ...
- Appium - xpath
基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 //*[@text='text文本属性'] # 定位text driver.find_element_by_xpa ...
随机推荐
- 树莓派高级GPIO库,wiringpi2 for python使用笔记(四)实战DHT11解码
DHT11是一款有已校准数字信号输出的温湿度传感器. 精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃. 我买的封装好的模块,上边自带了上拉电阻,直接查到树莓派上即可灰 ...
- 用while判断输入的数字是否回文数
/* Name:用while判断输入的数字是否回文数 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月18日 04:29:07 Description:用 ...
- 转: html5 history api详解~很好的文章
从Ajax翻页的问题说起 请想象你正在看一个视频下面的评论,在翻到十几页的时候,你发现一个写得稍长,但非常有趣的评论.正当你想要停下滚轮细看的时候,手残按到了F5.然后,页面刷新了,评论又回到了第一页 ...
- Qt监测光驱变化(使用WM_DEVICECHANGE)
xxx.h protected: bool winEvent(MSG *msg,long * result); xxx.cpp bool CBlurayTranscoderDlg::winEvent( ...
- 如何使ListView具有像ios一样的弹性
ListView 是我们在开发过程中经常使用的控件之一,通常情况下,当我们没有对它进行自定义或者给添加headerview 或者footerView的时候,他都没有一个很好的反馈效果,但是相比较而言, ...
- python总结
环境:django,numpy,matplotlib, 解释语言:开发效率高,通用性强,内置方便的数据容器,易于扩展和嵌入. 语言:lua--嵌入式/网络/APP,erlang--嵌入式,python ...
- SPOJ 7258 Lexicographical Substring Search(后缀自动机)
[题目链接] http://www.spoj.com/problems/SUBLEX/ [题目大意] 给出一个字符串,求其字典序排名第k的子串 [题解] 求出sam上每个节点被经过的次数,然后采用权值 ...
- Linux 电子书共享下载--大家一起学习
文件名 大小 时间 到期时间 操作 鸟哥私房菜(全集).pdf 36.57 MB 2 小时前 免费永久 练成Linux高手.chm 3.76 MB 2 小时前 免费永久 ...
- hdu 4873 ZCC Loves Intersection(大数+概率)
pid=4873" target="_blank" style="">题目链接:hdu 4873 ZCC Loves Intersection ...
- Ajax+asp.net实现用户登陆 转自http://www.shangxueba.com/jingyan/2933319.html
这篇文章主要介绍了Ajax+asp.net实现用户登陆,主要是为了练习ajax的使用方法,有需要的小伙伴参考下. 以用户登录为例练习ajax的使用方法 login.html <!DOCTYPE ...