7

私はこのコードを持っています:

@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 - SO でこの投稿を見ましたが、これは正しい方法で行っているようですが、必要な結果が得られていません。MVC4、最新バージョンを使用しています。

4

1 に答える 1

11

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

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

次のようなルートが必要です。

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

という名前の URL の 3 番目の部分に注意してくださいblogid。ただし、別のルートを構成したくない場合は、リンクを次のように書き換えることができます。

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

パラメータの に注意idしてください。

于 2013-04-10T02:39:39.460 に答える