Asp.Net MVC 學習心得 之 Html Helper

iDotNetSpace發表於2009-03-10

首先使用Asp.Net MVC可以不使用Html Helper,不過使用了Html Helper可以節約很多時間的O(∩_∩)O~

一、標準Html Helper

.ActionLink

建立一個連結,但現在還不能建立一個帶圖片的連結

  
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">  
    <p>  
        To learn more about this website, click the following link:   
        = Html.ActionLink("About this Website", "About" ) %>  
    p>  
asp:Content>  
"Aboud this Website”顯示的內容,"About” Action的名字
生成的Html如下:
<a href="/Home/About">About this Websitea>
ActionLink可以新增接受很多引數

· linkText – 連結上的文字

· actionName – 連結目標的action名字

· routeValues – 通向action的route值

· controllerName – controller名字

· htmlAttributes – 連結的html屬性

· protocol – 連結協議 (比如:https)

· hostname – 連結的Host名字 (比如:www.MyWebsite.com)

· fragment – 這個還沒弄的太明白╮(╯▽╰)╭

如果想新增個圖片連結,使用Url.Action:

<a href="Delete") %>"><img src="http://www.cnblogs.com/Content/Delete.png" alt="Delete" style="border:0px" />a>
Html Helper還可以生成很多Html控制元件:

· BeginForm()

· CheckBox()

· DropDownList()

· EndForm()

· Hidden()

· ListBox()

· Password()

· RadioButton()

· TextArea()

· TextBox()

 

基本上看名字就知道了,看例子:

" %>  
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">  
  
    = Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>  
  
     using (Html.BeginForm()) {%>  
  
        <fieldset>  
            <legend>Registerlegend>  
            <p>  
                <label for="FirstName">First Name:label>  
                = Html.TextBox("FirstName") %>  
                = Html.ValidationMessage("FirstName", "*") %>  
            p>  
            <p>  
                <label for="LastName">Last Name:label>  
                = Html.TextBox("LastName") %>  
                = Html.ValidationMessage("LastName", "*") %>  
            p>  
            <p>  
                <label for="Password">Password:label>  
                = Html.Password("Password") %>  
                = Html.ValidationMessage("Password", "*") %>  
            p>  
            <p>  
                <label for="Password">Confirm Password:label>  
                = Html.Password("ConfirmPassword") %>  
                = Html.ValidationMessage("ConfirmPassword", "*") %>  
            p>  
            <p>  
                <label for="Profile">Profile:label>  
                = Html.TextArea("Profile", new {cols=60, rows=10})%>  
            p>  
            <p>  
                = Html.CheckBox("ReceiveNewsletter") %>  
                <label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?label>  
            p>  
            <p>  
                <input type="submit" value="Register" />  
            p>  
        fieldset>  
  
     } %>  
  
asp:Content>  

其中Html.BeginForm()和EndForm()要單獨說一下:預設情況下,它會指向和自己相同的action,但也會接受不同引數改變指向的action:

· routeValues -- 如上

· actionName – 如上

· controllerName – 如上

· method – 只能使用POST和GET,必須使用javascript

· htmlAttributes – 如上

 

.Encode(),這個就是替換為>等等

.AntiForgeryToken 這個是為了抵禦跨域攻擊的。

= Html.AntiForgeryToken() %>

<input name="__RequestVerificationToken"  type="hidden"value="6tbg3PWU9oAD3bhw6jZwxrYRyWPhKede87K/PFgaw
     6MI3huvHgpjlCcPzDzrTkn8" />
helper會建立一個cookie和這個隱藏域的值相比較
在Controller中如下寫程式碼就可以了:
using System.Web.Mvc;  
  
namespace MvcApplication1.Controllers  
{  
    public class BankController : Controller  
    {  
        //  
        // GET: /Bank/Withdraw  
  
        public ActionResult Withdraw()  
        {  
            return View();  
        }  
  
        //  
        // POST: /Bank/Withdraw  
        [AcceptVerbs(HttpVerbs.Post)]  
        [ValidateAntiForgeryToken]  
        public ActionResult Withdraw(decimal amount)  
        {  
            // Perform. withdrawal  
            return View();  
        }  
  
    }  
} 

建立自己的HTML Helpers

using System;  
using System.Web.Mvc;  
  
namespace Helpers  
{  
    public static class SubmitButtonHelper  
    {  
        ///   
        /// Renders an HTML form. submit button  
        ///   
        public static string SubmitButton(this HtmlHelper helper, string buttonText)  
        {  
            return String.Format("", buttonText);  
        }  
  
    }  
}  

這樣就名了吧,建立一個submit.(*^__^*)

這樣可以建立很複雜的Html格式的。發揮想象

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-566609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章