標籤:stat ref name href url efault 參數 失效 控制器
一、根據路由系統產生友好的URLActionLink(this HtmlHelper htmlHelper, string linkText, string actionName);會根據當前的路由指定的Controller來為自己的URL指定controller值。特殊的如下:複製代碼//路由設定routes.MapRoute("NewRoute", "App/Do{action}",new { controller = "Home" });//ActionLink的代碼如下:@Html.ActionLink("測試","Test")複製代碼會對應產生:測試上面的例子還說明了一個問題就是如果是使用寫死的測試當路由被重新設定了,就會失效了,所以還是不建議使用“寫死”的方法,最好使用產生的方法。二、指定控制器複製代碼 //路由配置 routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{id}", // 帶有參數的 URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 參數預設值 ); //View代碼: @Html.ActionLink("測試", "Test", "Home") //對應的html: 複製代碼三、傳入額外的值路由同二,View代碼 :@Html.ActionLink("測試", "Test", new { id = "MyID" }) 對應的html:當路由如下時: routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}", // 帶有參數的 URL new { controller = "Home", action = "Index"} // 參數預設值 );對應的html:兩種產生的html不同,但是都可以使用模型繫結,得到id的值。當view代碼和預設路由系統相匹配時,產生的url會省去controller和action。路由如上面的所示,View代碼:@Html.ActionLink("首頁", "Index", "Home"),產生的url為:首頁四、指定html屬性除了指定串連之外,還可以指定標籤的屬性,如id,class等。view代碼:@Html.ActionLink("測試", "Test", "Home", new { id="testID",@class="nav"})(為避免和c#中的class關鍵字混淆,使用@class表示html標籤中的class)產生的html:測試以上都是產生的標籤,下面來看一下真正的url如下面的view代碼:”產生的url為: @Url.Action("Index", "Home", new { id=1})“產生的html是:”產生的url為: /Home/Index/1“主要用來表示某個串連的href的值。 五、指定路由我們經常會設定路由的名字,不僅僅是為了好記,在對指定路由 也是有好處的。目的是讓自己知道可以指定路由,具體用的時間在去查看其它的方法,下面只給一個方法的形式。public static MvcHtmlString RouteLink(this HtmlHelper htmlHelper, string linkText, string routeName);
mvc之URL篇