2017-02-04 33 views
5

У меня есть простое веб-приложение ASP.NET Core с такой страницей http://localhost:5050/Posts/Create/3.Как получить значение id в Url из Razor View в ASP.NET Core

В моем представлении Razor Views/Posts/Create.cshtml, как бы я мог получить значение «3», чтобы создать ссылку, например <a href="/Blogs/Details/3">« Back to Blog</a>?

До сих пор создал ссылку, используя следующий Tag Helper, но я не знаю, что надеть на 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), но я ищу, чтобы получить его из Url, используя что-то вроде Request.Query["id"] в Views/Post/Create.cshtml.

Я пробовал 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(). Значения [" id "]' и он работает. Можете ли вы отредактировать свой ответ? Я буду отмечать это как правильное решение. – kimbaudi