Wie man den Wert der id in der Url von Razor-Ansicht in ASP.NET Kern
Habe ich eine einfache ASP.NET Kern-web-Anwendung mit einer Seite wie http://localhost:5050/Posts/Create/3
.
In meinem Razor-Ansicht Views/Posts/Create.cshtml
, wie ich wäre in der Lage, um den Wert "3", so dass ich einen link erstellen, wie <a href="/Blogs/Details/3">« Back to Blog</a>
?
Bisher, erstellt, der link wird über die folgende Tag-Helper, aber ich weiß nicht, was für asp-route-id
:
<a asp-controller="Blogs" asp-action="Details" asp-route-id="" class="btn btn-default btn pull-right">« Back</a>
Habe ich nur das Standard-mvc-route:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Ich weiß, dass ich es bekommen können von dem Modell (D. H., Model.Blog.BlogId
), aber ich bin auf der Suche, um es von der Url etwas wie Request.Query["id"]
im Views/Post/Create.cshtml
.
Versuchte ich asp-route-id="@Context.Request.Query["id"]
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sowas
Context.GetRouteData().Values["id"];
?Auch http://www.blakepell.com/how-to-get-the-current-route-in-a-view-with-asp-net-5-mvc-6
RequestContext
im asp.net core.Context.GetRouteData().Values["id"]
und es funktioniert. Bearbeiten können Sie Ihre Antwort? Ich markieren Sie es als die richtige Lösung.ViewContext.RouteData.Values["id"]
Derzeit in ASP.NET Core 2.1 das funktioniert:
Sieht es aus wie im Asp.Net Core 2.2 nur die Anweisung "@ViewContext.RouteData.Werte["id"]" wird die id von einem link wie diesem "https://localhost:44356/Administration/AddUser/0".
Wenn Sie eine url wie dieser "https://localhost:44356/Administration/AddUser/0?status=False" und Sie wollen, um den Wert des "status" kann man mit "@Context.Anfrage.Query["status"]"
FWIW: ich verwende @ViewContext.RouteData.Werte["yourRouteId"]
Für aspcore 2.1, Verwendung:
HttpContextAccessor.HttpContext.Request.Query["id"]