學習 ASP.NET MVC (第五回)理論篇

作者: GWPBrian  來源: 博客園  發布時間: 2010-01-19 23:22  閱讀: 4202 次  推薦: 0   原文鏈接   [收藏]  

系列文章導航:

學習 ASP.NET MVC (第一回)理論篇

學習 ASP.NET MVC (第二回)實戰篇

學習 ASP.NET MVC (第三回)實戰篇

學習 ASP.NET MVC (第四回)實戰篇

學習 ASP.NET MVC (第五回)理論篇

 

通過前幾篇文章,我們通過ASP.NET MVC創建了一個簡單的應用程序,學習了ASP.NET MVC的基本框架和工作流程。但是Demo中很多東西都是VS為我們自動生成的,比如View的html代碼等。此文和大家一起學習一下ASP.NET MVC 中的Helper (輔助方法) --> HtmlHelperUrlHelper
何謂Helper,其實就是在View中為了實現一些靈活功能而寫的方法組,主要的目的就是實現將界面與邏輯分離。

HtmlHelper

ASP.NET MVC提供了一個HtmlHelper用于生成Html標簽和有數據綁定的Html標簽。
1.ActionLink
其中最常用的就是Html.ActionLink。
ActionLink中的三個參數分別為:顯示的文字,Action ,Controller 。其中Controller可以省略,省略時指向同一Controller下的Action。
---基本應用:

<%=Html.ActionLink("Hello""Index""Home")%>

 在UrlRouting規則為默認規則的情況下,它生成的HTML代碼為:Hello
---帶有QueryString的寫法:

<%=Html.ActionLink("Hello""Index""Home"new { page=1 },null)%>

 -------Hello
如果連接中不涉及到action及controller就沒有必要使用ActionLink,而是直接寫HTML代碼就可以了。Hello
2.Html表單元素
(1) Form:
我們當然可以使用純的Html代碼:
但是因為是在HTML的屬性中,所以還是難以維護,ASP.NET MVC為我們提供了一個Helper,我們可以通過以下兩種方式生成一個Form:

<%using(Html.BeginForm("index","home",FormMethod.Post)){%>表單內容  
<%%>

<%Html.BeginForm("index""home", FormMethod.Post);%>表單內容  
<%Html.EndForm(); %>

(2) 其他html標簽:
ASP.NET MVC提供了多種表單元素的Helper。其中包括:TextBox(類似input type=text)、TextArea、DropDownList(select)、CheckBoxHidden、ListBox、Password、RadionButton。

如果我們想提供一個input type=text 它的name為t1則以下代碼:

<%=Html.TextBox("t1"%>

(3) 表單元素綁定
如果我們想要讓上文中的t1初始時就有一個值:

<%=Html.TextBox("t1","Hello"%>

 如果數據是從數據庫中讀取,即得到數據是從Action中獲取的,那么我們可以在Action中使用ViewData傳遞。

Action:
ViewData["text"]="Hello";
View:

<%=Html.TextBox("t1",ViewData["text"]) %>


UrlHelper

1.UrlHelper.Action
UrlHelper的Action方法 用于生成一個URL地址:
Controller下Index:<%=Url.Action(“Index”)%> --------index
Controller下Index:<%=Url.Action(“Index”,new{id=1})%> --------index?id=1
UsersController下Index:<%=Url.Action(“Index”,"Users")%> --------/Users/index
UsersController下Index: <%=Url.Action(“Index”,"Users",new{id=1})%> /Users/index?id=1
在View中寫Url.Action("Index","Home"),運行后則會生成/Home/Index這個地址。

2.UrlHelper.Encode
這也是UrlHelper的一個方法 使用方法 如<%=Url.Encode("中文")%>,功能與Server.UrlEncode相同。

3.UrlHelper.Content
用于服務器路徑轉換為絕對路徑。如:
<%=Url.Content("~/content/site.css") %>最后的結果為:/content/site.css
 

0
0
 
標簽:ASP.NET MVC
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()