2010-10-10 21 views
0

我使用這個自定義路由,使呼叫在Home控制器我的索引方法不對參數:Actionlinks加時定製路由使用

routes.MapRoute(_ 
    "HomePage", _ 
    "Home/Index/{page_num}", _ 
    New With {.controller = "Home", .action = "Index", .page_num = ""} _ 
    ) 

但是,當我瀏覽到的任何網頁,例如2頁,actionlinks追加頁碼的網址:

Html.ActionLink("Home", "Index", "Home") 

將呈現_http://本地主機/首頁/索引/ 2,而不是_http://本地主機/首頁/指數

但我注意到,行動方法s沒有參數呈現正確: _http:// localhost/Home /關於

回答

0

Html.ActionLink使用前一個路由值字典中的page_num參數,除非將某些參數更改爲page_num。

如果你有路線如下圖所示:

routes.MapRoute(_ 
    "HomePage", _ 
    "{controller}/{action}/{page_num}", _ 
    New With {.controller = "Home", .action = "Index", .page_num = ""} _ 
    ) 

Html.ActionLink( 「家」, 「約」)將清除PAGE_NUM變量,你會得到像URL的/ home /約,而不是將/ home /大約/ 2。 看看這個相關的Question。也許這會有所幫助。

+0

我無法理解這條路線與前一條路線有何不同,但它會使actionlinks爲其他具有分頁的路線呈現正確的url,例如:_http:// localhost/blog/index,但仍然是Html.ActionLink( 「Home」,「Index」,「Home」)會將頁碼添加爲參數。 – SilverDove 2010-10-11 11:51:51