01第1节:概述
#NET编程#在ASP.NETMVC5中,微软将Html语言中重要的表单标记封装了起来,放在了System.Web.Mvc.Html命名空间中,这些封装的方法称为帮助方法或辅助方法,都是扩展方法。ASP.NETMVC5中的帮助方法都是在视图中使用的,以Html.为格式,每个帮助方法都会存在很多的重载参数,让.NET开发者更灵活的选择使用什么样的参数输出Html标记。对于帮助方法,返回的类型都是MvcHtmlString,且第一个参数都是thisHtmlHelperhtmlHelper,从扩展方法的语法上看,这是要将该方法扩展到HtmlHelper类中。注意:C#中的扩展方法都是静态方法,这是C#语言的规定。02第2节:HTML辅助方法
下面我们重点介绍几个与Html表单标记相关的辅助方法,分别是隐藏标记、密码框、单选按钮、文本框和标签标记。这些Html标记都是组成form表单的核心标记。¥30.NETMvc5深入编程-从0基础到深入学习线上.NET培训课程淘宝¥购买已下架因此,对于.NETMVC5初学者来说,这几个与表单相关的帮助方法一定要掌据透彻,包括每个重载版本及相关参数的含义,都是弄的一清二楚,这样才能准确的设计表单页面。一、Html.Hidden().NETMVC5中的Html.Hidden()辅助方法用于生成隐藏的控件,对应于HTML标记中的:inputtype=“hidden”/,虽有内容,但不能在Web页面上显示。常用于在页面中传递Id值。下面是在视图中使用Html.Hidden()方法的基本语法:using(Html.BeginForm(Index,Student,FormMethod.Post)){divHtml.Hidden(Id)inputtype=submitvalue=提交//div}在Web页面上隐藏的控件看不到,对用户来说是不可见的,但在网页源代码中是可以看到的。在GoogleChrome浏览器上右击,选择“显示网页源代码”,就能看到当前网页的完整Html标记源代码。从网页的源代码上看,Html.Hidden()已经生成id和name属性的值都是Id且type为hidden的input标记。二、Html.Password()在.NETMVC5中,Html.Password()主要用于呈现密码框,对应于HTML的inputtype=“password”/标记,密码框输入的文本内容是以黑色的圆点覆盖的,所以是看不到的。下面是Html.Password()辅助方法的基本语法:using(Html.BeginForm(Index,Student,FormMethod.Post)){divHtml.Password(Pwd)inputtype=submitvalue=提交//div}密码框主要是用来存储密码的,当然,任何不想让别人看到的输入信息都可以放在密码框中。当在密码框中输入内容时,都是随时使用黑色的小圆点替代,不管是输入者,还是旁看者,都是看不到的,具体输入的是什么内容,只有输入者心里知道。那有开发者会问,如果我在密码框中输入了我的密码,那么在网页源代码中能看到吗?我们打开已输入密码的网页代码,看一下:从打开的网页源代码上看,type属性的值为password的input标记,其中是看不到任何值的,起到了一定的保护作用。三、Html.RadioButton()使用Html.RadioButton()辅助方法用来生成单选按钮,对应于HTML的inputtype=“radio”/标记。下面是Html.RadioButton()方法的写法:Html.RadioButton(Sex)男使用单元按钮用来显示一些相互排斥的一组按钮,放在form标记中,用于提交数据。using(Html.BeginForm(Index,Student,FormMethod.Post)){divHtml.RadioButton(Sex,男)男Html.RadioButton(Sex,女)女inputtype=submitvalue=提交//div}只要Html.RadioButton()辅助方法的第1个参数的值一致,就是一组排斥的单选按钮。对于Html.RadioButton()方法的使用,要稍显得复杂一些,需要设置的参数多一些。在网页源代码中生成type为radio的input标记。四、Html.TextBox()使用Html.TextBox()方法生成文本框,对应于HTML中的inputtype=“textbox”/标记。下面是Html.TextBox()辅助方法的写法:Html.TextBox(xm)使用文本框可以用于表单信息的录入,主要用来收集简单的文本内容,是最常用的表单标记。using(Html.BeginForm(Index,Student,FormMethod.Post)){divHtml.TextBox(xm)inputtype=submitvalue=提交//div}Html.TextBox()生成type为text的input标记,该标记具有value属性,用于存储文本框中输入的文本内容。五、Html.Label()使用Html.Label()辅助方法可以生成label标签,用于显示控件的名称,常与Html.TextBox()辅助方法配合使用,标识文本框的名称,对用户来说起一个说明和解释的作用。Html.Label(Name):Html.TextBox(Name)这两个辅助方法常配合一起,完成表单的制作,且二者之间还可以通过for属性建立联系,当用户单击到标签值时,光标会放到文本框中。label标记不是表单标记,是一个具有闭合的标签标记,常用于显示一些名称、说明内容等。在此网页源代码中,使用了label标记的for与input标记关联起来,形成一体,当按下Tab键时直接访问的是文本框标记,而不是label标记。Html辅助方法对于MVC5表单来说,可以使代码整洁,还可以使用视图模型对象控制,使用起来更加灵活,表单中的所有值都可以放在模型对象中一起提交给控制器,这样实现数据的存储将变的更加简单。