1. 程式人生 > >MVC(五、HtmlHelper(Html 輔助方法)介紹)

MVC(五、HtmlHelper(Html 輔助方法)介紹)

在View檢視中,Html的型別是System.Web.Mvc.HtmlHelper
介紹一些常用的html輔助方法的主要作用和使用方法

1、Html.BeginForm()和Ajax.BeginForm()

1)Html.BeginForm()

同於傳統的表單提交,主要是生成表單的form值,如果表單時強型別檢視,則在提交表單的時候,會自動將表單元素name名稱與強型別檢視中的型別實體的屬性值相同的進行填充;同樣在表單中,如果我們是強型別檢視,則可以直接使用@Model.UserName將值輸到指定位置。

一般和using{} 一起使用,否則要在form結尾新增Html.EndForm()。
  method的方法分為: post 和 get: 提交後,變數可以在URL位址列中獲取。Get提交的時候,不會改變伺服器的狀態,客戶端重複向伺服器傳送Get請求對伺服器不會產生負面影響。
  post: 提交表單中的所有元素,Post請求會改變伺服器的狀態,因此客戶端重複向伺服器傳送Post請求會對伺服器產生影響。
使用方法: 

@using( Html.BeginForm( "方法名", "Controller名", FormMethod.提交的方法, new { target="_blank", @class = "表單的class名,方便定義樣式", @id="表單的id名,方便獲取表單元素"} )){  }

等同於:

<form action="Controller名/方法名" method ="提交的方法" class ="表單的class名" id="表單的id名" target="_blank"></form>

2)Ajax.BeginForm()

支援非同步的表單提交,可以直接用MVC自帶的Ajax.BeginForm就可以很容易的完成一個非同步的表單提交動作。

@using(Ajax.BeginForm(
new AjaxOptions
{
  UpdateTartetId ="UserLogOnContainer",
  HttpMethod ="Post",
  OnSuccess=""      
}
)) //提交到當前頁面,提交方式是Post,非同步更新模組Id為UserLogOnContainer的內容塊

也可以提交到指定的controller的action上。

@using(Ajax.BeginForm("action","controller",null
new AjaxOptions
{
  UpdateTartetId ="UserLogOnContainer"
,   HttpMethod ="Post",   OnSuccess="" } )) //提交到當前指定的controller的action下,提交方式是Post,非同步更新模組Id為UserLogOnContainer的內容塊

2、Html.ValidationSummary()

主要用來

(1). 顯示後臺 ModelState.IsValid 驗證失敗後的提示錯誤資訊。
(2). 或者是後臺驗證通過,但是某些邏輯驗證沒有通過。

比如:使用者登入的時候,使用者名稱或者密碼錯誤。則可以手工新增錯誤資訊
View頁面:

@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")

Controller可以寫:

ModelState.AddModelError("", "The user name or password provided is incorrect.");

3、Html.ValidationMessage()

功能和Html.ValidationSummary()類似,當ModelState字典中認證失敗時,用來顯示錯誤提示資訊。
使用方法:
Controller中寫:

ModelState.AddModelError("Title","What a terrible name!");

View中使用

@Html.ValidationMessage("Title")

4、Html.TextBox()、Html.TextArea()

主要是用來渲染 Html的textbox和textarea

使用方法:

@Html.TextBox("title","textbox infomation") 
@Html.TextArea("textAreaTitle","textarea <br/> infomation")

等同於:

<input type="text" id="title" name="title"> 
       textbox information 
 </input>
< textarea id="textAreaTitle" name="textAreaTitle"> 
       textarea &lt; br /&gt;  information 
</textarea >

5.Html.Label()

Label輔助方法將返回一個label元素

使用:Controller:

[DisplayName("Genre")]    //顯示的內容
public int GenreId{get;set;}

View:

@Html.Label("GenreId")

等同於:

<label for="GenreId">Genre</label>

6、Html.DropDownList()、Html.ListBox()

兩個輔助方法都返回select元素,DropDownList只允許多單選,而ListBox則允許多選
(通過渲染的標記中的multiple特性的值設定為multiple), 後臺繫結資料來源一般使用SelectListItem型別。

new SelectListItem
{
    Text = ”顯示內容“,
    Value = "對應的值",
    Selected = bool值(是否選中)
}

7、Html.Editor()

用法:自定義Editor編輯器。

8、Html.Hidden()

用於渲染隱藏的輸入元素,一般用於在頁面顯示隱藏域。
用法:

@Html.Hidden("wizardStep", "1")
@Html.HiddenFor(w => w.wizardStep)

對應Html的:

<input id="wizardStep" name="wizardStep" type="hidden" value="1" />

9、Html.Password()

用於渲染密碼欄位。他除了不保留提交的值和使用密碼掩碼之外,其他基本和TextBox的輔助方法一樣。
用法:

@Html.Password("UserPassword") 

=>

@Html. PasswordFor(w => w.UserPassword)

對應Html的:

<input id="UserPassword" name="UserPassword" type="password" value="" />

10、Html.RadioButton()

用於渲染單選按鈕,一般都是組合使用。如下:選擇性別(男/女)
用法:

@Html.RadioButton("Gender","Male")
@Html.RadioButton("Gender","Female", true)
@Html.RadioButtonFor(m => m.Gender, "Male")
@Html.RadioButtonFor(m => m.Gender, "Female")

11.Html.CheckBox()

用於渲染複選框按鈕(checked 、 unchecked)。它是唯一 一個渲染兩個輸入元素的輔助方法。
用法:

@Html.CheckBox("isChecked")

對應於:

<input name="isChecked" id="isChecked" type="checkbox" value="true" />
<input name="isChecked" type="hidden" value="false"/>

12、Html.ActionLink()、Html.RouteLink()

Html.ActionLink():

1)用於渲染一個指定另外一個控制器操作的超連結,跟前面的BeginForm輔助方法一樣。
用法:

@Html.ActionLink("Link Text 顯示的連結名稱", "AnotherAction 要提交的控制器方法名稱")

對應於:

<a href="/Home/AnotherAction">Link Text</a> 

2)不同一個控制器則用:

@Html.ActionLink("Link Text", "AnotherAction", "AnotherController")

對應於:

<a href="/AnotherController/AnotherAction">Link Text</a>

3)如果要傳遞個引數到action中,則可以用:

@Html.ActionLink("Link Text", "AnotherAction", "AnotherController", new{ ID = 123 } )

對應於:

<a href="/AnotherController/AnotherAction?ID=123">Link Text</a>

13.Html.Partial()、Html.RenderPartial()

1) Html.Partial用於將分部渲染成字串。
2) Html.RenderPartial是直接將使用者控制元件嵌入到介面上。

如:

@{ Html.RenderPartial("LogOnUserControl"); } 

@{ Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx"); }

兩者類似:

@Html.Partial(“AlbumDisplay”) (寫法較方便) => @{ Html.RenderPartial(“AlbumDisplay”); } (效能較好)

14.Html.Action()、Html.RenderAction()

Html.RenderAction
通過Controller中的Action來呼叫使用者控制元件

Controller:

public ActionResult UserControl()
{
    return PartialView();
}

View:

@Html.RenderAction("UserControl","Controller")

15、Url.Action()

Url輔助方法和Html的ActionLink和RouteLink類似。但他不是用Html標記的形式返回構建的Url,而是返回字串形式的Url。

<span>
    @Url.Action("Browse", "Store", new{ genre = "Jazz" }, null )
</span>

對應Html的

<span>
    Store/Browse?genre=Jazz 
</span>

16.Url.Content()

<script src="@Url.Content("~/Scripts/Jquery-1.10.1.min.js")" type="text/javescript"></script>

相關推薦

MVCHtmlHelper(Html 輔助方法)介紹

在View檢視中,Html的型別是System.Web.Mvc.HtmlHelper 介紹一些常用的html輔助方法的主要作用和使用方法 1、Html.BeginForm()和Ajax.BeginForm() 1)Html.BeginForm() 同

ASP.NET MVC 系列之 強型別HTML輔助方法使用

強型別輔助方法及及相關普通方法介紹一、普通Html輔助方法 1、@Html.Lable(元素名稱,元素值,元素屬性) 示例: @Html.Lable("GenreName","流行",new { @class="validation" }) 渲染之後程式碼如下 <la

vmware horizon 6.0搭建-各元件的簡單介紹

vmware horizon 6.0主要由以下幾個功能模組組成: 1.Microsoft Active Directory:對使用者進行身份驗證和管理。 2.Vmware Vcenter Server:對物理主機和虛擬機器進行管理。 3.Vmware Horizon view

終止正在執行的子執行緒幾種方式的介紹

最近開發的東西有涉及到執行緒的建立和釋放,由於對這一塊不是很熟悉,查閱很多資料,現記錄如下: 如何正確的終止正在執行的子執行緒       最近開發一些東西,執行緒數非常之多,當用戶輸入Ctrl+C的情形下,預設的訊號處理會把程式退出,這時有可能會有很多執行緒的資源

Asp.net MVC4高級編程學習筆記-模型學習第MVC表單和HTML輔助方法20171101

流量 取值 工作 sin 輔助 一個點 大量 元數據 view MVC表單和HTML輔助方法 一、表單的使用。 表單中的action與method特性。Action表示表單要提交往那裏,因此這裏就有一個URL。這個URL可以是相對或絕對地址。表單默認的method屬性值是g

第5章 表單和HTML輔助方法(HtmlHelper輔助方法的使用HTML輔助方法的工作原理強型別輔助方法)

一、表單的使用1、表單<form action="http://www.bing.com/search" monthod="get"> <input name="q" type="text"/> <input type="submit" valu

MVC學習筆記HTML輔助方法【上】

<!DOCTYPE html> <html> <head> <title>這是預設的檢視標題</title> <link href="/Content/Site.css" rel="stylesheet" type="text/

ASP.NET MVC5:表單和HTML輔助方法

http get 暴露 sta 選擇 .text 響應 pos 多行文本 二進制 表單的使用 Action和Method特性   Action特性用以告知瀏覽器信息發往何處,因此,Action特性後面需要包含一個Url地址。這裏的Url地址可以是相對的,也可以是絕對的。如

【ASP.NET MVC系列】淺談表單和HTML輔助方法

繼承 好的 內容 概述 調用 復制 畫圖 models pac 【01】淺談Google Chrome瀏覽器(理論篇) 【02】淺談Google Chrome瀏覽器(操作篇)(上) 【03】淺談Google Chrome瀏覽器(操作篇)(下) 【04】淺談AS

Java併發庫:執行緒範圍內共享資料ThreadLocal共享資料的三種方法

深切懷念傳智播客張孝祥老師,特將其代表作——Java併發庫視訊研讀兩遍,受益頗豐,記以後閱 05. 執行緒範圍內共享變數的概念與作用 執行緒範圍內共享資料圖解: 程式碼演示: class ThreadScopeShareData {        三個模組共享資料,主執

asp.net mvc 2 強型別html輔助方法

   從今天開始做asp.net專案,這對於我是新知識,希望在學習的路上一切順利。加油!!自我勉勵!! 今天看了一個登入頁面,用到了Html.XXFor(param=>param.xx)的方法,表示對於model層屬性的引用。網上說屬於強型別的html輔助方法,引數

自定義ASP.NET MVC Html輔助方法

在ASP.NET MVC中,Html輔助方法給我們程式設計師帶來很多方便,其重要性也就不言自明。有時候,我們不想重複地寫一些HTML程式碼,或者MS沒有提供我們想要的那個HTML標籤的Html輔助方法,那麼,我們就可以通過自己定義一個Html擴充套件方法來達到這個目的。

APS.NET MVC + EF (07)---表單和HTML輔助方法

step 使用方法 class load view con password ati object 在ASP.NET MVC中,可以借助HtmlHelper 對象來輸出頁面內容,提高開發效率。下面,我們將介紹一些常用的輔助方法。 7.1 HTML輔助方法 B

HTML輔助方法

multipart date 應該 樣式 不同 web form index count tle 顧名思義,HTML輔助方法(HTML Helper)就是用來輔助產生HTML之用,在開發View的時候一定會面對許多HTML標簽,處理這些HTML的工作非常繁瑣,為了降

EF6 在原有數據庫中使用 CodeFirst 總復習生成發帖頁面

數據 ctrl 記得 自動 rst 默認值 string 頁面 ont 有點與在原有數據庫中使用 CodeFirst 遠了,不過是總復習嗎,總得全面點。 一、在用戶表(Users)中插入兩個用戶 二、生成發帖界面 MVC生成的界面很多,也沒使用Ajax,實際開

工作總結 @Html 輔助方法 為 生成的 標簽設置元素屬性 htmlAttributes 一個對象,其中包含要為該元素設置的 HTML 特性。

radi ads als model down new 其中 con change @Html.RadioButtonFor(m => m.IsJianChe, true, new { @style = "width: 18px; height: 18px;" })是

Java學習筆記31集合框架:set接口哈希表的介紹

ins gpo 自己 static 增強for {} ati 兩個 公式 set接口的特點: 1.不包含重復元素 2.set集合沒有索引,只能用叠代器或增強for循環遍歷 3.set的底層是map集合 方法和Collection的方法基本一樣 set接口的實現類Hash

二十:強類型HTML輔助方法

tex AR 而且 輸入 name 輸出 ext alt lambda表達式 1. 強類型HTML輔助方法的使用 1、 HTML輔助方法 例如,要輸出一個文本框 @Html.TextBox("email") 2、強類型HTML輔助方法 命名規則

JPA學習JPA_二級緩存

level follow have cati mil 使用 軟件 什麽 idl 框架學習之JPA(五) JPA是Java Persistence API的簡稱,中文名Java持久層API,是JDK 5.0註解或XML描述對象-關系表的映射關系,並將運行期的實體對象持久化到數

Python學習:16.Python面對對象反射,構造方法,靜態字段,靜態方法

xxx 基於 自動 sel pan style 參數 屬於 get 一、構造方法 在使用類創建對象的時候(就是類後面加括號)就自動執行__init__方法。 class A: def __init__(self): print(‘A‘)