在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 八 表單驗證