2013-07-17 13 views

Odpowiedz

8

Nie wyklucza ich prostota:

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

wskazać rodzaj modelu mamy do czynienia z

@model int 

i odnoszą się do wartości w silnie wpisany sposób poprzez:

@Model 
13

Można użyć RequestContext

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

spróbować znaleźć z poniżej kod

W Razor

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

W WebForms:

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

która zwraca obiekt, jak konwertować do typu diff? –

+1

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

+0

Ups, zapomniałem, że mamy do czynienia z ValueType. 'int? id = ViewContext.RouteData.Values ​​["id"] jako int?; "Przesyłaj go do [Nullable ] (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types /) AKA 'int?', A następnie sprawdź, czy jest zerowy. – Sinjai

4

Dla mniej doświadczonych użytkowników można uzyskać dostęp do kontrolera i części akcji adresu URL. (Razor Przykład)

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

Gdzie,

context.MapRoute(
      name: "MyRoute", 
      url: "{controller}/{action}/{id}" 
} 
Powiązane problemy