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.ViewPage<MvcApplication1.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>  
            <legend>Register</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:代码还是别人的

路漫漫其修远兮 吾将上下而求索


本文转自 lu xu 博客园博客,原文链接:http://www.cnblogs.com/dotLive/archive/2009/03/09/1407188.html   ,如需转载请自行联系原作者

相关文章
|
2天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
1月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
38 7
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
这篇文章是关于计算机组成原理的王道考研学习笔记,主要介绍了半导体存储器RAM和ROM的相关知识。
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
58 0
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【文献学习】Phase-Aware Speech Enhancement with Deep Complex U-Net
文章介绍了Deep Complex U-Net模型,用于复数值的语音增强,提出了新的极坐标掩码方法和wSDR损失函数,并通过多种评估指标验证了其性能。
54 1
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
47 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
3月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
122 0
|
3月前
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)

热门文章

最新文章