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(转载)的更多相关文章

  1. Convert HTML to Text(转载)

    原文地址:http://www.blackbeltcoder.com/Articles/strings/convert-html-to-text  Download Source Code Intro ...

  2. 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script

    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...

  3. Python 爬虫入门(requests)

    相信最开始接触Python爬虫学习的同学最初大多使用的是urllib,urllib2.在那之后接触到了第三方库requests,requests完全能满足各种http功能,真的是好用爆了 :D 他们是 ...

  4. 一不小心写了个bootstrap风格下拉控件 JqueryUI + bootstrap

    受够了EasyUI的封闭,Bootstrap虽然华丽但是功能太渣,闲着无聊写个下拉控件玩玩吧,不喜勿喷哈... 第一步:先设计下我的下拉控件的样子 1.既然是bootstrap风格的,我想应该是这样的 ...

  5. Python request SSL证书问题

    错误信息如下: 1 requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_s ...

  6. 递归查询区域信息及子区域到advTree

    效果: DataTable dtArea = new DataTable(); private void Form1_Load(object sender, EventArgs e) { Node n ...

  7. 爬虫必备—requests

    Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得 ...

  8. web前端开发 代码规范 及注意事项

    web前端开发 代码规范 及注意事项 外部命名规范 html .js .css文件名称命名规范 my_script.js my_camel_case_name.css my_index.html 路径 ...

  9. Appium - xpath

    基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 //*[@text='text文本属性'] # 定位text driver.find_element_by_xpa ...

随机推荐

  1. perl正则表达式第二周笔记

    1.使用正则表达式修改文本 1.使用正则表达式修改文本 正则表达式的功能不只有查询,还可以对文本进行修改,例如替换 $var=~m/regex/i $var=~s/regex/replacement/ ...

  2. [C++]让CPU使用率曲线呈现为正弦曲线(一)

    看<编程之美>的第一题就很有意思: 写一个程序,让用户来决定Windows任务管理器的CPU占用率.可以实现下面三种情况: 1. CPU的占用率固定在50%,为一条直线: 2. CPU的占 ...

  3. SecureCRT, SecureFX连接Linux时中文乱码解决办法

    SecureCRT可以在GUI界面设置,但SecureFX没有设置界面.不过可以直接在配置文件中修改. 1. 找到配置文件夹(选项--全局选项,常规下的配置文件夹),默认是:C:\Documents  ...

  4. for循环产生的Cortex-M3汇编代码的一个奇怪现象

    最近比较一下KEIL和IAR两个编译器产生的代码,基于Cortex-M3处理器的,然后发现了一几个奇怪的地方. 很简单的一个C的for循环 void fun_for_add_65535(void) { ...

  5. JAVA泛型实现一个堆栈类

    package com.xt.test; /** * 泛型实现堆栈,thinking in java中的例子 * * @author Administrator * * @param <T> ...

  6. extjs 4.0.7 Desktop 替换claaes.js

    最近在学习Extjs 发现Demo 中有个Desktop的于是就尝试学习一下.结果发现怎么改都没效果后来偶然发现 默认采用的是classes.js 为压缩后的js 引入已经修改后的分开的js瞬间 一切 ...

  7. Android Studio配置(build优化和as优化)

    首先是用户目录下的C:\Users\用户名\.gradle\文件下创建gradle.properties文件 输入 org.gradle.daemon=trueorg.gradle.configure ...

  8. Highlight On Mouseover Effect With JQuery

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element Qu ...

  9. iOS 面试题:OC基本概念题

    1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...

  10. [SAP] 外部系统调用SAP web service用户验证的简单方法

    场景: 一个Java系统调用SAP系统提供的web service,除了根据WSDL生成的代理类,调用相应方法,传入相应参数外,还等需要使用SAP提供的用户信息进行身份验证,最简单的方法是在soap请 ...