ASP.NET 3.5 MVC 架構與實戰筆記6 HtmlHelper控制項解析

來源:互聯網
上載者:User
文章目錄
  • FormExtensions類
  • InputExtensions類
  • LinkExtensions類
  • RenderPartialExtensions類
  • SelectExtensions類
  • TextAreaExtensions類
  • ValidationExtensions類
FormExtensions類

FormExtensions類是一個靜態類,定義了3種類型的擴充方法:BeginForm、BeginRouteForm、EndForm;在實際開發中,也可以使用using語句,而不需要寫EndForm擴充方法。

InputExtensions類

InputExtensions類定義了5種類型的擴充方法:CheckBox,Hidden,Password,RadioButton,TextBox.

    <%=Html.BeginForm("CheckBox", "Study")%>    <fieldset>        <legend>CheckBox</legend>        <%=Html.CheckBox("MyCheckBox1",true,new{id="checkBox1"}) %>        <label for="checkbox1">XieTi</label>                <%= Html.CheckBox("MyCheckBox2",false,new {id="mycheckBox2"}) %>        <label for="checkbox2">HeiTi</label>                <br/><br/>        <input type="submit" value="submit" />    </fieldset>    <% Html.EndForm();%>

 

看看運行後的網頁原始碼吧:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><title>TestPage</title></head><body>    <div>    <form action="/Study/Index" method="post">System.Web.Mvc.Html.MvcForm    <fieldset>        <legend>¨¦¨¨??CheckBox</legend>        <input checked="checked" id="checkBox1" name="MyCheckBox1" type="checkbox" value="true" /><input name="MyCheckBox1" type="hidden" value="false" />        <label for="checkbox1"></label>                <input id="mycheckBox2" name="MyCheckBox2" type="checkbox" value="true" /><input name="MyCheckBox2" type="hidden" value="false" />        <label for="checkbox2"></label>                <br/><br/>        <input type="submit" value="submit" />    </fieldset>    </form>    </div></body></html>

對於每一個CheckBox控制項,MVC都另外產生了一個隱藏的對應控制項

<input name="MyCheckBox1" type="hidden" value="false" /> <input name="MyCheckBox2" type="hidden" value="false" />

所以在控制器中檢測複選框的狀態,可以使用如下代碼:

        public ActionResult  CheckBox(FormCollection formCollection)        {            bool myCheckBox1 = formCollection[0].Contains("true");            bool myCheckBox2 = formCollection["checkBox2"].Contains("true");            ViewData["MyCheckBox1"] = myCheckBox1;            ViewData["MyCheckBox2"] = myCheckBox2;            return View("Test");        }

 

Password擴充方法主要實現輸入密碼的文字框

RadioButton主要實現選項按鈕控制項

TextBox主要實現單行的文字框

 

LinkExtensions類

ActionLink,RouteLink

RenderPartialExtensions類

在視圖中顯示相關的使用者控制項

SelectExtensions類

:DropDownList,ListBox

TextAreaExtensions類

:設定TextArea控制項

ValidationExtensions類

:實現控制項的輸入驗證 ValidationMessage, ValidationSummary

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.