2013-04-10 10 views
6

で、私はこのコードを持っている:Html.Actionlink ID

@Html.ActionLink("Back To Blog","Blog","Home", new {Model.BlogId}, null) 

コードは、このHTMLを生成していること:

<a href="/Home/Blog?BlogId=1">Back To Blog</a> 

しかし、私はそれが生成するをしたいすると、このです:

<a href="/Home/Blog/1">Back To Blog</a> 

これを修正するにはどうすればよいですか?

PS - 私は正しい方法でやっていると思われるので、この投稿を見ましたが、私が望む結果が得られません。 MVC4、最新版を使用しています。

答えて

10

Home/Blog/{BlogId}のルートが設定されていないと思われます。だから、これを書くことができるようにしたい場合は(あなたのコードで表示するものとして):

routes.MapRoute(
    name: "DefaultBlog", 
    url: "{controller}/{action}/{blogid}", 
    defaults: new { controller = "Home", action = "Blog", 
      blogid = UrlParameter.Optional } 
); 

お知らせURLの第三部:あなたはこのようなルートを持っている必要があります

@Html.ActionLink("Back To Blog","Blog","Home", new { Model.BlogId}, null) 

これはblogidという名前です。

@Html.ActionLink("Back To Blog","Blog","Home", new { id = Model.BlogId}, null) 

お知らせパラメーターにid:あなたは別のルートを設定したくない場合はしかし、その後、あなたは同じようにあなたのリンクを書き換えることができます。

+0

'new {id = Model.BlogId}'と同意します。 'id'を指定するとそれを修正するかもしれません。 –

+2

'id'を指定する**" will "** **" might "**;)だけでなく**これを修正する –

+0

これはうまくいきました:@ Html.ActionLink(" Back To Blog "、" Blog "、" Home " 、新しい{id = Model.BlogId}、null) –