Comment obtenir le paramètre de chaîne de requête à partir de MVC, Razor balisage?
Je veux vérifier le paramètre de l'URL dans mon Rasoir de balisage. Par exemple, comment dois-je faire quelque chose comme ceci:
<div id="wrap" class="@{if (URL "IFRAME" PARAMETER EQUALS 1) iframe-page}">
Vous devez vous connecter pour publier un commentaire.
Fil similaire
MODIFIER 01-10-2014:
Depuis que cette question est si populaire cette réponse a été améliorée.
L'exemple ci-dessus va obtenir uniquement les valeurs de
RouteData
, donc seulement à partir de la querystrings qui sont pris par certains route enregistrée. Pour obtenir la valeur querystring vous devez arriver à l'actuelHttpRequest
. La façon la plus rapide est par vocation (comme TruMan a souligné la Demande.Querystring' donc, la réponse devrait être:Vous pouvez également vérifier RouteValues vs QueryString MVC?
MODIFIER 03-05-2019:
Au-dessus de la solution est de travailler pour .NET Framework.
Comme d'autres l'ont souligné, si vous souhaitez obtenir la valeur de chaîne de requête dans .NET de Base vous devez utiliser
Query
objet deContext.Request
chemin. Il serait donc:Veuillez remarquer que je suis en utilisant
StringValues("1")
dans l'instruction, carQuery
retourneStringValues
struct au lieu de purestring
. C'est cleanes pour le scenerio que j'ai trouvé.Si vous êtes en utilisant .net core 2.0 ce serait:
Exemple d'utilisation:
Je pense qu'une solution plus élégante consiste à utiliser le contrôleur et le ViewData dictionnaire:
return View(new SomeViewModel{ IsIFrame = IFrame });
Il a été suggéré de poster cela comme une réponse, parce que d'autres réponses sont à donner des erreurs comme "Le nom de Contexte n'existe pas dans le contexte actuel".
Juste en utilisant les ouvrages suivants:
Exemple d'utilisation:
Noneof les réponses a travaillé pour moi, j'ai été faire "'HttpRequestBase' ne contient pas une définition pour 'Query'", mais ce n'travail:
Pour Asp.net Core 2
AttempValue
- si le paramètre n'existe pas dans la chaîne de requête, vous obtiendrez une exception, vous devriez d'abord vérifier:@if (ViewContext.ModelState["id"] != null)...