Asp.Net MVC 学习心得 之 Html Helper

本文详细介绍了ASP.NET MVC框架中HTML Helper的功能与用法,包括如何使用标准的HTML Helper来快速生成HTML元素,例如链接、表单控件等,并展示了如何创建自定义的HTML Helper以满足更复杂的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一、标准Html Helper

.ActionLink

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

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

· linkText – 链接上的文字

· actionName – 链接目标的action名字

· routeValues – 通向action的route值

· controllerName – controller名字

· htmlAttributes – 链接的html属性

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

· hostname – 链接的Host名字 (比如:http://www.52mvc.com)

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

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

<ahref="<%= Url.Action("Delete") %>"><imgsrc="http://blog.csdn.net/jhl52771/article/details/8495991"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.ViewPage<MvcApplication1.Models.Customer>" %><asp:ContentID="Content2"ContentPlaceHolderID="MainContent"runat="server"><%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.")%><%using(Html.BeginForm()) {%><fieldset><legend>Register</legend><p><labelfor="FirstName">First Name:</label><%= Html.TextBox("FirstName")%><%= Html.ValidationMessage("FirstName","*")%></p><p><labelfor="LastName">Last Name:</label><%= Html.TextBox("LastName")%><%= Html.ValidationMessage("LastName","*")%></p><p><labelfor="Password">Password:</label><%= Html.Password("Password")%><%= Html.ValidationMessage("Password","*")%></p><p><labelfor="Password">Confirm Password:</label><%= Html.Password("ConfirmPassword")%><%= Html.ValidationMessage("ConfirmPassword","*")%></p><p><labelfor="Profile">Profile:</label><%= Html.TextArea("Profile",new{cols=60, rows=10})%></p><p><%= Html.CheckBox("ReceiveNewsletter")%><labelfor="ReceiveNewsletter"style="display:inline">Receive Newsletter?</label></p><p><inputtype="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()%>


<inputname="__RequestVerificationToken"type="hidden"value="6tbg3PWU9oAD3bhw6jZwxrYRyWPhKede87K/PFgaw
     6MI3huvHgpjlCcPzDzrTkn8"/>
helper会创建一个cookie和这个隐藏域的值相比较
在Controller中如下写代码就可以了:
usingSystem.Web.Mvc;namespaceMvcApplication1.Controllers  
{publicclassBankController : Controller  
    {//// GET: /Bank/WithdrawpublicActionResult Withdraw()  
        {returnView();  
        }//// POST: /Bank/Withdraw[AcceptVerbs(HttpVerbs.Post)]  
        [ValidateAntiForgeryToken]publicActionResult Withdraw(decimalamount)  
        {// Perform. withdrawalreturnView();  
        }  
  
    }  
}


创建自己的HTML Helpers


usingSystem;usingSystem.Web.Mvc;namespaceHelpers  
{publicstaticclassSubmitButtonHelper  
    {/// <summary>/// Renders an HTML form. submit button/// </summary>publicstaticstringSubmitButton(thisHtmlHelper helper,stringbuttonText)  
        {returnString.Format("<input type=\"submit\" value=\"{0}\" />", buttonText);  
        }  
  
    }  
}


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


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

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


· htmlAttributes – 如上


 


.Encode(),这个就是替换<为&lt; >为&gt;等等


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


<%= Html.AntiForgeryToken()%>


<inputname="__RequestVerificationToken"type="hidden"value="6tbg3PWU9oAD3bhw6jZwxrYRyWPhKede87K/PFgaw
     6MI3huvHgpjlCcPzDzrTkn8"/>
helper会创建一个cookie和这个隐藏域的值相比较
在Controller中如下写代码就可以了:
usingSystem.Web.Mvc;namespaceMvcApplication1.Controllers  
{publicclassBankController : Controller  
    {//// GET: /Bank/WithdrawpublicActionResult Withdraw()  
        {returnView();  
        }//// POST: /Bank/Withdraw[AcceptVerbs(HttpVerbs.Post)]  
        [ValidateAntiForgeryToken]publicActionResult Withdraw(decimalamount)  
        {// Perform. withdrawalreturnView();  
        }  
  
    }  
}


创建自己的HTML Helpers


usingSystem;usingSystem.Web.Mvc;namespaceHelpers  
{publicstaticclassSubmitButtonHelper  
    {/// <summary>/// Renders an HTML form. submit button/// </summary>publicstaticstringSubmitButton(thisHtmlHelper helper,stringbuttonText)  
        {returnString.Format("<input type=\"submit\" value=\"{0}\" />", buttonText);  
        }  
  
    }  
}


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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值