MVC3学习 六 HtmlHelper的使用与扩展
使用鏈接時(shí),如果傳統(tǒng)的跳轉(zhuǎn)方式如:
<a href="Home/Index>返回</a>?如果將路由的默認(rèn)配置
routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults);修改為:
routes.MapRoute("Default", // Route name"{controller}-{action}/{id}", // URL with parametersnew { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults);則原始的跳轉(zhuǎn)就會失效。所以在跳轉(zhuǎn)時(shí),要使用
@Html.ActionLink("返回","Index","Home")這樣,不管以后的路由規(guī)則如何變化,鏈接照樣還可以使用。
顯示數(shù)據(jù)的細(xì)節(jié):
MVC中,控件的數(shù)據(jù)綁定都是先根據(jù)name到viewdata中去尋找key值,如果存在,則綁定數(shù)據(jù),所以在controller中,直接將數(shù)據(jù)綁定到viewdata中,key設(shè)置為控件的name名,就可以直接顯示了,如:
controller中:ViewData["id"]="1";
view中:@Html.TextBox("id"),這樣,在頁面加載時(shí),會直接將這個(gè)“1”綁定到TextBox中,同樣綁定Dropdownlist時(shí),也可以同樣用這種方式。
<% : %>與<% = %>的區(qū)別
<% : %>會將代碼以安全的方式顯示在view中,比如在controller中,Viewdata["message"]="<script>alert("您好")</script>",
<% : Viewdata["message"]%>顯示時(shí),會將"<"自動(dòng)轉(zhuǎn)碼為html的格式,也就是說不會彈出提示。
<%=Viewdata["message"]%>顯示時(shí),并不會轉(zhuǎn)換,而是直接在頁面彈出對話框。
擴(kuò)展Htmlhelper
擴(kuò)展時(shí)需要注意三個(gè)要素,即:靜態(tài)類,靜態(tài)方法,this關(guān)鍵字。
在models中新建一個(gè)類,代碼如下:
namespace System.Web.Mvc {//擴(kuò)展HtmlHelper方法public static class MyHtmlHelperExt{//擴(kuò)展HtmlHelper方法public static string Mylable(this HtmlHelper helper, string txt){return string.Format("<p>您好,{0}</p>", txt);}public static HtmlString MyHtmlStringLable(this HtmlHelper helper, string txt){return new HtmlString(string.Format("<p>您好,{0}</p>", txt));}} }
這里首先需要注意,namespace System.Web.Mvc,如果不將默認(rèn)的命名空間變成和HtmlHelper一致的話,在頁面中不導(dǎo)入models的命名空間會無法使用,所以若想在其他頁面中直接使用,就需要將命名
空間和HtmlHelper一致,這樣能使用HtmlHelper的頁面,也同樣能夠使用擴(kuò)展的方法。
然后需要注意的是第一個(gè)擴(kuò)展的方法,如果直接返回string類型,而不返回HtmlString類型時(shí),那么返回的字符串會被自動(dòng)轉(zhuǎn)換成html格式,也就是說p標(biāo)簽無效,而微軟做的直接就可以返回標(biāo)簽,是因?yàn)榉祷?/p>
的是HtmlString類型,所以需要將返回類型設(shè)置為HtmlString。
?
轉(zhuǎn)載于:https://www.cnblogs.com/y8932809/p/4387070.html
總結(jié)
以上是生活随笔為你收集整理的MVC3学习 六 HtmlHelper的使用与扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FLV视频在IIS6.0下不能播放 处理
- 下一篇: C++基本数据类型解惑