Asp.Net MVC 学习心得 之 Html Helper

首先使用Asp.Net MVC可以不使用Html Helper,不过使用了Html Helper可以节约很多时间的O(∩_∩)O~

一、标准Html Helper

.ActionLink

创建一个链接,但现在还不能创建一个带图片的链接

%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %  
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 Website/a
ActionLink可以添加接受很多参数

· linkText – 链接上的文字

· actionName – 链接目标的action名字

· routeValues – 通向action的route值

· controllerName – controller名字

· htmlAttributes – 链接的html属性

· protocol – 链接协议 (比如:https)

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

· fragment – 这个还没弄的太明白╮(╯▽╰)╭

如果想添加个图片链接,使用Url.Action:

a href="%= Url.Action("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()

 

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

%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPageMvcApplication1.Models.Customer" %  
asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"  
  
    %= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %  
  
    % using (Html.BeginForm()) {%  
  
        fieldset  
            legendRegister/legend  
            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(),这个就是替换为lt; 为gt;等等

.AntiForgeryToken 这个是为了抵御跨域攻击的。

%= Html.AntiForgeryToken() %

会生成一个隐藏域,value是每次都不同的随机字符串,如:

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  
    {  
        /// summary  
        /// Renders an HTML form submit button  
        /// /summary  
        public static string SubmitButton(this HtmlHelper helper, string buttonText)  
        {  
            return String.Format("input type=\"submit\" value=\"{0}\" /", buttonText);  
        }  
  
    }  
}  

这样就名了吧,创建一个submit.(*^__^*)

这样可以创建很复杂的Html格式的。发挥想象

ps:代码还是别人的

转载于:https://www.cnblogs.com/dotLive/archive/2009/03/09/1407188.html

最新回复(0)
/jishupuZ7LDKtLgjsZc21RyQvJMfPKecrB9MfTt7WC_2BKXbj0_3D4488872
8