日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper

發布時間:2024/9/20 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

許多時候我們會遇到如下場景

在寫一個編輯數據的頁面時,我們通常會寫如下代碼

1: <input type="text" value='<%=ViewData["title"] %>' name="title" />

由前篇我們所講的Helper演化,我們思考,對于這種代碼我們是不是也可以用一個Helper來自動綁定數據呢

這當然是可以的,ASP.NET MVC提供了一個HtmlHelper用于生成有數據綁定的Html標簽。

?

1.ActionLink

其中最常用的就是Html.ActionLink

1.1基本的使用方式

1: <%=Html.ActionLink("這是一個連接", "Index", "Home")%>

在UrlRouting規則為默認規則的情況下,它生成的HTML代碼為

1: <a href="/">這是一個連接</a>

ActionLink中的三個參數分別為

  • 顯示的文字
  • Action
  • Controller
  • 其中Controller可以省略,省略時指向同一Controller下的Action。

    1.2ActionLink中QueryString與Html屬性設置

    1: 帶有QueryString的寫法 2: <%=Html.ActionLink("這是一個連接", "Index", "Home", new { page=1 },null)%> 3: <%=Html.ActionLink("這是一個連接", "Index", new { page=1 })%> 4: 有其它Html屬性的寫法 5: <%=Html.ActionLink("這是一個連接", "Index", "Home", new { id="link1" })%> 6: <%=Html.ActionLink("這是一個連接", "Index",null, new { id="link1" })%> 7: QueryString與Html屬性同時存在 8: <%=Html.ActionLink("這是一個連接", "Index", "Home", new { page = 1 }, new { id = "link1" })%> 9: <%=Html.ActionLink("這是一個連接", "Index" , new { page = 1 }, new { id = "link1" })%>

    其生成結果為:

    1: 帶有QueryString的寫法 2: <a href="/?page=1">這是一個連接</a> 3: <a href="/?page=1">這是一個連接</a> 4: 有其它Html屬性的寫法 5: <a href="/?Length=4" id="link1">這是一個連接</a> 6: <a href="/" id="link1">這是一個連接</a> 7: QueryString與Html屬性同時存在 8: <a href="/?page=1" id="link1">這是一個連接</a> 9: <a href="/?page=1" id="link1">這是一個連接</a>

    這樣就可以使用ActionLink生成近乎所有的地址連接了。

    注意,如果連接中不涉及到action及controller就沒有必要使用ActionLink,而是直接寫HTML代碼就可以了,例如

    1: <a href="#1">一章</a> 2: <a href="javascript:void(0)" onclick="delete();">刪除</a>

    2.RouteLink

    2.1與ActionLink

    RouteLink與ActionLink相差無幾,只是它的地址是由Route生成拿上面的例子

    1: <%=Html.ActionLink("這是一個連接", "Index", "Home")%>

    來說,如果用RouteLink來寫就是

    1: <%=Html.RouteLink("這是一個連接", new { controller="Home",action="Index"})%>

    而帶上QueryString以及Html屬性的ActionLink

    1: <%=Html.ActionLink("這是一個連接", "Index" , new { page = 1 }, new { id = "link1" })%>

    就可以這樣來寫

    1: <%=Html.RouteLink("這是一個連接", new { action = "index", page = 1 }, new { id="link1"})%>

    其實就是用一個新建立的RouteValueDictionary的對象(new{}所實例化的對象將會等價轉換為RouteValueDictionary)來替原來的Action,Controller字符串的單獨指定。

    2.2RouteLink使用Route規則

    除了這些協同的用法,RouteLink還支持使用Route規則名來創建連接

    例如我們在Global.asax文件中添加一個Route規則

    1: routes.MapRoute( 2: "about",//這是規則名 3: "about",//url 4: new {controller = "Home", action = "about"} 5: );

    那么我們就可以使用這個Route規則

    1: <%=Html.RouteLink("關于", "about", new { })%> 2: <%=Html.RouteLink("關于", "about", new { page = 1 })%> 3: <%=Html.RouteLink("關于", "about", new { page = 1 }, new { id = "link1" })%>

    來生成如下的HTML:

    1: <a href="/about">關于</a> 2: <a href="/about?page=1">關于</a> 3: <a href="/about?page=1" id="link1">關于</a>

    3.表單

    很多情況下是要生成表單元素的,正如文章開始所述,修改一個內容的情況下,我們可能要將數據與表單綁定。

    3.1生成Form

    我們當然可以使用純的Html代碼或UrlHelper來生成一個Form。

    1: <form action="/home/index" method="post"> 2: </form> 1: <form action="<%=Url.Action("Index","Home")%>" method="post"> 2: </form>

    但是因為是在HTML的屬性中,所以還是難以維護,幸好ASP.NET MVC為我們提供了一個Helper,我們可以通過以下兩種方式生成一個Form:

    1: <%using(Html.BeginForm("index","home",FormMethod.Post)){%> 2: 表單內容 3: <%} %> 4: <%Html.BeginForm("index", "home", FormMethod.Post);//注意這里沒有=輸出%> 5: 表單內容 6: <%Html.EndForm(); %>

    BeginForm方法類似于ActionLink的調用方式,所以ASP.NET MVC還提供了BeginRouteForm這種方法。

    當然這里我們也可以使用new{}來為form的action增加querystring或HTML屬性,方法與前面介紹的大同小異,參見方法列表即可。

    3.2表單元素

    ASP.NET MVC提供了多種表單元素的Helper。

    其中包括:TextBox(類似input type=text,下面類似)、TextArea、DropDownList(select)、CheckBoxHidden、ListBox、Password、RadionButton。

    注意:因為<input type=”submit” />一般情況下是不會綁定數據的所以ASP.NET MVC并未提供此Helper(曾經提供過在preview2之前)。

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

    1: <%=Html.TextBox("t1") %>

    3.3表單元素綁定

    如果我們想要讓上文中的t1初始時就有一個值,比如 “重典”那么我們可以按以下方式

    1: <%=Html.TextBox("t1","重典") %>

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

    Action:

    1: ViewData["name"]="重典";

    View:

    1: <%=Html.TextBox("t1",ViewData["name"]) %>

    以上方法看似簡單,其實ASP.NET MVC為我們提供了更為簡便的綁定方式---只要保證ViewData的Key與Helper所生成元素的name保持一致就可以自動綁定:

    Action:

    1: ViewData["t1"]="重典";

    View:

    1: <%=Html.TextBox("t1") %>

    這樣就可以自動綁定了

    3.4列表數據顯示與綁定

    像TextBox這種值單一的數據比較容易,但是存在的數據比較多的DropDownList或ListBox應該怎么綁定數據及初始化值呢,我們來看看下面的例子:

    Action:

    1: ViewData["sel1"] = new SelectList( 2: new[] {1, 2, 3} /*列表內容可以是數組*/ 3: , 3 /*默認值,可以是從數據庫讀出的*/ 4: );

    View:

    1: <%=Html.DropDownList("sel1")%>

    這樣就可以將列表內容、默認值、以及表單元素三者綁定在一起了。

    而我們的列表內容并不是任何情況下都是數組的,大多情況下還是Key-Value對居多。

    我們可以使用以下方式:

    1: List<SelectListItem> list = new List<SelectListItem> 2: { 3: new SelectListItem {Text = "重典", Value = "1"}, 4: new SelectListItem {Text = "鄒健", Value = "2"}, 5: }; 6: ViewData["sel1"] = new SelectList( 7: list /*列表內容可以是數組*/ 8: , "2" /*默認值,可以是從數據庫讀出的*/ 9: );

    總結

    以上是生活随笔為你收集整理的ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 九九热8 | 美女福利在线观看 | 一乃葵在线 | 亚洲国产欧美视频 | 在线aa | 日韩一级在线观看视频 | 秋霞影院一区二区 | 免费的黄色小视频 | 日本精品视频在线播放 | 久久久久久午夜 | 色欲久久久天天天综合网 | 国产精品一区二区三区免费看 | 久久久久久久国产视频 | 91精品成人 | 四虎影视免费永久大全 | av毛片网站 | 成人三级黄色片 | 免费高清视频一区二区三区 | 欧美日韩久久久久久 | 韩国不卡av | 日韩av线上 | 国产免费不卡av | 性xxxx另类xxⅹ | 夜夜嗨一区 | 91av影院| 高跟91白丝 | 日韩欧美精品一区二区 | 蜜臀av夜夜澡人人爽人人 | 精品一区二区国产 | 国产福利视频一区二区 | 大j8黑人w巨大888a片 | 欧美黑人性生活 | 日韩成人一区二区三区 | 91av色 | 毛片其地 | 一级香蕉视频在线观看 | 草久久久| 日本九九视频 | 久久精品人妻一区二区三区 | 欧美激情视频在线观看 | 日韩午夜在线观看 | www.亚洲黄色 | 善良的女朋友在线观看 | 91精品久久久久久久久中文字幕 | 婷婷国产一区二区三区 | 久久久社区 | 色婷婷av一区二区三区软件 | jizz在线看 | 波多野结衣在线一区二区 | 公肉吊粗大爽色翁浪妇视频 | 爱草av| 日韩a级片在线观看 | 国产高清精品在线观看 | 国产黄色一级大片 | 久久免费国产精品 | 国产亚洲欧洲 | 东北少妇露脸无套对白 | 波多野结衣午夜 | 国产精品刘玥久久一区 | 亚洲国产精品成人午夜在线观看 | 性开放耄耋老妇hd | 河北彩花中文字幕 | 丝袜中文字幕 | 欧美精品在线一区二区三区 | 爱爱的免费视频 | 欧美精品第1页 | 五月天综合在线 | www.呦呦 | 欧美成人免费网站 | 久99久视频 | 永久av免费 | 国产福利91精品一区二区三区 | 中国妇女做爰视频 | 欧美乱妇高清无乱码 | av网站导航 | 91久久网 | 免费国产视频 | a级特黄视频| 99精品久久久久 | 熟女肥臀白浆大屁股一区二区 | 亚洲影音 | 免费日皮视频 | 东京热一区二区三区四区 | 国产乱子伦精品无码码专区 | 国产这里只有精品 | 日韩a在线观看 | www.亚洲国产 | 日韩黄色网页 | 亚洲色图另类小说 | 日日碰日日操 | 一区二区中文字幕在线观看 | 樱桃国产成人精品视频 | 在线观看成人动漫 | 日韩精品视 | 久久夜精 | 欧美在线一卡 | 99在线观看视频 | 综合黄色 | 黄色av软件 |