2017-02-04 5 views
5

私は、http://localhost:5050/Posts/Create/3のようなページを持つ単純なASP.NETコアWebアプリケーションを持っています。ASP.NETのRazorビューからURLのIDの値を取得する方法

私のRazor View Views/Posts/Create.cshtmlでは、<a href="/Blogs/Details/3">« Back to Blog</a>のようなリンクを作成できるように、どのように値「3」を得ることができますか?

これまでのところ、以下のタグヘルパーを使用してリンクを作成しましたが、私はasp-route-idのために配置するかわからない:

<a asp-controller="Blogs" asp-action="Details" asp-route-id="" class="btn btn-default btn pull-right">&laquo; Back</a> 

私は単にデフォルトのMVCルート使用しています:

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "default", 
     template: "{controller=Home}/{action=Index}/{id?}"); 
}); 

私はモデル(すなわち、Model.Blog.BlogId)からそれを得ることができると知っていますが、Views/Post/Create.cshtmlRequest.Query["id"]のようなものを使用してURLから取得しようとしています。

私はasp-route-id="@Context.Request.Query["id"]を試しました。

答えて

7

何かのようにContext.GetRouteData().Values["id"];

またhttp://www.blakepell.com/how-to-get-the-current-route-in-a-view-with-asp-net-5-mvc-6

+0

ええ、それはasp.netコアではありません。 asp.netコアには 'RequestContext'がありません。 – kimbaudi

+0

最初の行は、私のプロジェクトから貼り付けられたasp.netのコアですが、望む通りに正確に使用できない可能性があります。最後のリンクはどうですか?私は試していませんが、MVC 6であるはずです。 – Daboul

+0

ちょっと、私は 'Context.GetRouteData()。Values [" id "]'を試してみました。あなたの答えを編集できますか?私はそれを正しい解決策としてマークします。 – kimbaudi

関連する問題