2013-07-17 19 views

Antwort

8

nicht aus, es einfach zu halten:

public ActionResult Action(int id) 
{ 
    return View(id); 
} 

den Typ des Modells Geben wir es zu tun mit

@model int 

Und in einer stark typisierten Weise auf den Wert beziehen über:

@Model 
13

können Sie Request verwenden

@{ 
var id = HttpContext.Current.Request.RequestContext.RouteData.Values["id"]; 
} 
77

Versuch von unten Code zu finden

In Razor

@{ 
    var id = ViewContext.RouteData.Values["id"]; 
} 

In WebForms:

<% 
    var id = ViewContext.RouteData.Values["id"]; 
%> 
+0

das Objekt zurückgibt, wie man diff Typ konvertieren? –

+1

@Nigel 'int id = ViewContext.RouteData.Values ​​[" id "] als int;' – Sinjai

+0

Hoppla, wir haben es mit einem ValueType zu tun. "Int? id = ViewContext.RouteData.Values ​​["id"] als int?; 'Umwandeln in [Nullable ] (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types /) AKA 'int?', Dann überprüfe, ob es null ist. – Sinjai

4

Und für die weniger erfahrenen da draußen, können Sie auch auf den Controller und die Aktion Teile der URL zugreifen. (Razor Beispiel)

if(ViewContext.RouteData.Values["action"].ToString() == "Account") 
{ 
    @Html.Raw("Hi ") @Session["UserName"] 
} 

Wo,

context.MapRoute(
      name: "MyRoute", 
      url: "{controller}/{action}/{id}" 
} 
Verwandte Themen