2011-10-30 18 views
0

私はページングシステムになりました。全て大丈夫。 2ページ目をクリックすると、ホームページのリンクがすべて変更されます。html.actionlinkで間違ったURL

@Html.ActionLink("Home page", "Index", "Home") //This is standard routing without values. 

ページの最後にページングリンクが追加されました。この同じ

<a href="/Home/Index/2">Home page</a> 

に私のすべてのホームページのリンクは変換:私は第二またはそれ以上のページ(www.site.com/Home/Index/2例えば)をクリックしたときに

@Html.ActionLink("2", "Index", "Home", New With {.id = 2}, Nothing) //This works good too. 

私の問題はあります。 どうすればこの問題を解決できますか?

+0

問題が発生している現在のURLは何ですか? –

+0

@ Html.ActionLink( "Home page"、 "Index"、 "Home")コマンドは、この値と同じHome pageを生成します。 –

答えて

3

2番目のページをクリックすると、{.id = 2}がRouteDataの一部になります。そして、あなたのルーティングが、おそらくこのようになりますので:

routes.MapRoute(_ 
     "Default", _ 
     "{controller}/{action}/{id}", _ 
     New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _ 
    ) 

(Gloabal.asaxで)ASP.NET MVCは、生成されたリンクのために、このルートを使用します。これを修正するには、必要がないときに明示的に上書きする必要があります。

@Html.ActionLink("Home page", "Index", "Home", New With {.id = ""}, Nothing)