ASP.Net的HtmlHelper和UrlHelper

来源:互联网 发布:营养师配餐软件 编辑:程序博客网 时间:2024/05/19 07:07

asp.net mvc框架中有自带的HtmlHelper和UrlHelper两个帮助类简直是神器,我们不用再一点点写代码,只需一句简单的@html就可以了下面详细介绍一下

一、@Html.ActionLink()概述

  在MVC的Rasor视图引擎中,微软采用一种全新的方式来表示从前的超链接方式,它代替了从前的繁杂的超链接标签,让代码看起来更加简洁。通过浏览器依然会解析成传统的a标签。除此之外,还允许我们添加Html属性。下面来看看@Html.ActionLink()的使用方法吧。

1.1、@Html.ActionLink()的使用详解

  1. @Html.ActionLink(“linkText”, “actionName”)

  这种重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法(Action),默认控制器为当前页面对应的控制器。

  例如,当前页面的控制器为ProductsController:@Html.ActionLink(“detial”, “Detial”)会生成detail

  2. @Html.ActionLink(“linkText”, “actionName”, “controllerName”)

  该重载比第一个重载多了一个参数,他指定了控制器的名称。

  例如,@Html.ActionLink(“detail”, “Detail”, “Products”)会生成detail

  3. @Html.ActionLink(“linkText”, “actionName”, routeValues)

  相对于上一种重载,该重载新增了routeValue参数,routeValue可以向action传递参数。

  例如,@Html.ActionLink(“detail”, “Detail”, new{ id = 1 })会生成detail

  4. @Html.ActionLink(“linkText”, “actionName”, routeValues, htmlAttributes)

  htmlAttribute可以设置标签的属性。

  例如,@Html.ActionLink(“detail”, “Detail”, new{ id = 1 }, new{ target = “_blank” })会生成detail,需要注意的是如果写成new{ target=”_blank”, class=”className” }则会报错,因为Class是C#的关键字,此时应该写成@class=”className”。

  5. @Html.ActionLink(“linkText”, “actionName”, “controllerName”, routeValues, htmlAttributes)

  该种重载汇聚了以上此种重载的所有参数,是功能最全的重载。
  
二 @Html.DropDownList()使用介绍
使用例子如下:

 @{ var dropList = new List<SelectListItem>();        for (int i = 0; i < 5; i++)        {            var dropItem = new SelectListItem();            dropItem.Value = i.ToString();            dropItem.Text = i.ToString();            dropList.Add(dropItem);        }    }
@Html.DropDownList("myList", dropList, new { style = "width:100px;" })

MyList:id和name
droplist:数据
htmlAttributes:样式

三、表单
例子

3.1@Html.RadioButton()

  <label>男</label>    @Html.RadioButton("Gender","1",true)

第一个参数id和name
第二个参数是value
第三个参数代表是否选中

3.2@Html.Password()

 <label>密码</label>    @Html.Password("password","longgel")         <br />

第一个是type
第二个是value

3.3@Html.TextArea()

<label>文本框</label>    @Html.TextArea("myTxtArea",new{style="width:300px; height:100px;"})

第一个参数是id
第二个参数是样式htmlAttributes

四、@Html.DisplayFor()和@Html.Display()

暂时感觉两种就是单纯的显示,如果model为空可能会报错

UrlHelper

五、@Url.Action()

@Url.Action("action1", "controller1", new RouteValueDictionary {{"id",1} }, "http或https", "www.baidu.com"),

第一个参数:页面名
第二个参数:控制器名称、
第三份参数:路由值、
第四个参数:要使用的协议和
第五个参数:完全限定 URL

简单例子

  <a href='@Url.Action("Contact")' title="">指定Action名称生成URL</a><br />    <a href='@Url.Action("Contact", new {id=2,category=5 })' title="">指定Action名称和多个参数生成URL</a><br />    <a href='@Url.Action("Contact","HomeController","id")%>' title="">指定Action,Controller和一个参数生成URL</a><br />    <a href='@Url.Action("Contact","HomeController", new {id=2,category=5 },"https")' title="">指定传输协议生成URL</a><br />

六、@Url.Encode()生成加密url

<a href='@Url.Encode("http://www.cnblogs.com/")' title="">加密过的URL连接</a>