2013-07-17 16 views

risposta

8

Non escludiamo mantenerlo semplice:

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

Indicare la tipologia del Modello abbiamo a che fare con

@model int 

e si riferiscono al valore in un modo fortemente tipizzato tramite:

@Model 
13

È possibile utilizzare RequestContext

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

cercare di trovare da sotto il codice

In Razor

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

In WebForms:

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

che restituisce oggetto, come convertire al tipo di diff? –

+1

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

+0

Oops, ho dimenticato che abbiamo a che fare con un ValueType. 'Int? id = ViewContext.RouteData.Values ​​["id"] come int?; "Trasmetti su [Nullable ] (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types /) AKA 'int?', Quindi controlla se è nullo. – Sinjai

4

E per i meno esperti, è possibile accedere anche al controller e alle parti di azione dell'URL. (Razor Esempio)

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

Dove,

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