实用干货!ASP.Net MVC之Html Helper.Net/ASP开发工程师
有不少在学习ASP.NET MVC的朋友,可能会觉得写代码非常繁琐,枯燥,其实在ASP.NET MVC中有许多微软为我们提供的有用的工具,那么都有什么呢,今天我们就来说说Htmel Helper。当然你也可以不用,但是Html Helper可以为我们节省继续多的时间呢
一、标准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 Websitea>
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.ViewPage" %>
<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);
}
}
}
看完上面的东西,是不是就觉得豁然开朗了呢,动动你的大脑,可以写出更多有用的Html Helper呢,发挥想想,只有你想不到的,没有做不到呢
汇鱼人才每天发布实用咨询,想要了解更多就来关注汇鱼人才把。


1914篇文章