在View页面中,我们需要构建HTML页面,来提交表单数据或显示表单数据,那么HTML这样的页面,我们以前直接拖用ASP:服务器控
件,而现在在MVC里又是如何来做的呢?
一、那我们得需要来了解一下Html.BeginForm() 和 Html.TextBox() HTML 辅助方法
Html.BeginForm() 辅助方法用来输出HTML <form>元素,使用方法是:
<% using (Html.BeginForm()) { %>HTML<%}%> 左括号表示FROM开始,右括号表示FROM结束,中间是我们FROM中要放置的内容。
这一使用方法在前面使用了 using 那么如果不想使用它的话那么我们也可以使用Html.BeginForm() 和 Html.EndForm() 组合
代码实例:
<% Html.BeginForm(); %>HTML内容<% Html.EndForm(); %> 相应生成的页面代码:<form action="/Dinners/Edit/1" method="post"></form>
二、有了<FORM>后,我们接下来需要说到标签控件,Html.TextBox() 辅助方法
Edit.aspx 视图使用Html.TextBox() 辅助方法输出<input type="text" />元素:
<%= Html.TextBox("Title") %>
上面的Html.TextBox() 方法接收了仅仅一个参数 – 用来同时指定<input type=”text” />元素的id/name
属性,以及填充文本框值的Model 属性。例如,传入的Dinner 对象的Title 属性值为” .NET Futures”,因
此Html.TextBox(“Title”)方法将输出<input id="Title" name="Title" type="text" value=".NET Futures" />。
另外,我们也可以使用Html.TextBox() 的第一个参数来指定元素的id/name 属性值,并显式给第二个参
数传递值。
<%= Html.TextBox("Title", Model.Title)%>
如果需要对输出结果进行格式化输出,则可以使用.NET 内置的String.Format() 静态方法。Edit.aspx 视图
模板使用这一方法来对EventDate 值进行格式化(DateTime 类型),不显示秒信息:
格式化时间:<%= Html.TextBox("EventDate", String.Format("{0:g}", Model.EventDate)) %>
Html.TextBox() 方法的第三个可选参数可用来输出额外的HTML 属性。如下代码显示如何对<input type=text” />元素呈现额外的
size=”30”和class=”mycssclass”属性。注意:这里为了避免冲突C#的关键字Class 冲突,采用@前缀。
<%= Html.TextBox("Title", Model.Title, new { size=30, @class="myclass" } )%>
除了以上的写法外还有:
<%=Html.TextBoxFor(m=>m.name) %> 和 直接写标签 <input id="username" name="username" type="text" />
上一篇:ASP.NET MVC 六 Models中使用LINQ自动生成的实体类--(提交表单) 下一篇:ASP.NET MVC 八 表单验证