Je veux vérifier le paramètre URL dans mon balisage Razor. Par exemple, comment puis-je faire quelque chose comme ceci :
<div id="wrap" class="@{if (URL "IFRAME" PARAMETER EQUALS 1) iframe-page}">
Je veux vérifier le paramètre URL dans mon balisage Razor. Par exemple, comment puis-je faire quelque chose comme ceci :
<div id="wrap" class="@{if (URL "IFRAME" PARAMETER EQUALS 1) iframe-page}">
<div id="wrap" class=' @(ViewContext.RouteData.Values["iframe"] == 1 ? /*do sth*/ : /*do sth else*/')> </div>
MODIFIER 01-10-2014 : Cette question étant très populaire, la réponse a été améliorée.
L'exemple ci-dessus ne récupère que les valeurs de RouteData
donc uniquement à partir des chaînes de requête qui sont capturées par une route enregistrée. Pour obtenir la valeur de la chaîne d'interrogation, vous devez accéder à l'adresse actuelle de l'utilisateur. HttpRequest
. Le moyen le plus rapide est d'appeler (comme TruMan l'a souligné) `Request.Querystring' donc la réponse devrait être :
<div id="wrap" class=' @(Request.QueryString["iframe"] == 1 ? /*do sth*/ : /*do sth else*/')> </div>
Vous pouvez également vérifier RouteValues vs QueryString MVC ?
MODIFIER 03-05-2019 : La solution ci-dessus fonctionne pour .NET Framework.
Comme d'autres l'ont fait remarquer, si vous souhaitez obtenir la valeur de la chaîne de requête dans le champ .NET Core vous devez utiliser Query
l'objet de Context.Request
chemin. Donc ça le serait :
<div id="wrap" class=' @(Context.Request.Query["iframe"] == new StringValues("1") ? /*do sth*/ : /*do sth else*/')> </div>
Veuillez noter que j'utilise StringValues("1")
dans la déclaration parce que Query
renvoie à StringValues
struct au lieu d'un pur string
. C'est le moyen le plus propre que j'ai trouvé pour ce scénario.
Il a été suggéré de publier cette réponse, car certaines autres réponses donnent des erreurs telles que "Le nom Contexte n'existe pas dans le contexte actuel".
Il suffit d'utiliser ce qui suit :
Request.Query["queryparm1"]
Exemple d'utilisation :
<a href="@Url.Action("Query",new {parm1=Request.Query["queryparm1"]})">GO</a>
pour ASP.NET Core 5.0
Vous pouvez obtenir des paramètres de requête en injectant IHttpContextAccessor
dans la page Razor. Et obtenez la valeur de n'importe quel paramètre avec Request.Query
objet.
Exemple d'URL => https://localhost:44326/?MyParam=MyValue
Index.cshtml :
@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor
<span>@HttpContextAccessor.HttpContext.Request.Query["MyParam"][0]</span>
Notez qu'il peut y avoir plusieurs paramètres de requête avec le même nom, donc les valeurs sont stockées dans une collection.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.