web-dev-qa-db-fra.com

MVC 4 - Razor - Passe une variable dans une URL href

Comment puis-je passer une variable dans une URL?

Ce que j'essaie, c'est ceci, mais cela ne fonctionne pas. L'URL montre seulement ceci:

http://myurltest.com et pas le chemin complet

@if(check1 != "d")
{    
    <li>
        <div class="a"></div>
    </li>
    <li>
        <div class="b"></div>
    </li>
    <li>
        <a href="http://myurltest.com/" + @check1 + "/go/5/true">
        <div class="c"></div>
        </a>
    </li>
}
30
user2232273

Comme ça:

<a href='@string.Format("http://myurltest.com/{0}/go/5/true", check1)'>

Le but est d'insérer l'URL complète dans le balisage, plutôt que de combiner les éléments de balisage et de code.

73
Andrei

Si cela pointe vers une action de votre site Web/application, vous devez utiliser

@Url.Action(your parameters)

dans votre attribut href.

Notez que vous pouvez également générer le lien complet avec

@Html.ActionLink(your parameters)

Ce sont des méthodes surchargées, Intellisense ou Google décriront toutes les alternatives possibles.

Habituellement, pour les liens vers les actions du même site Web, ces méthodes sont meilleures que de manipuler la chaîne d'URL comme le "http://myurltest.com/@check1/go/5/true" Proposé, car elles peuvent être utilisées sur une machine locale (où l'URL de base est localhost: someport) et mieux que "@check1/go/5/true" (Chemin relatif) car évite les incompatibilités d'URL au moment du déploiement.

D'un autre côté, si le lien pointe vers une ressource externe, alors quelque chose comme le <a href="http://myurltest.com/@check1/go/5/true"> Proposé est correct.

Bonne journée,

Alberto

8
Alberto

Utilisation de l'interpolation de chaîne en C # 6

<a href="@($"http://myurltest.com/{check1}/go/5/true")" >

Wiki

En programmation informatique, une interpolation de chaîne ou une interpolation de variable (également une substitution de variable ou un développement de variable) est le processus d'évaluation d'un littéral de chaîne contenant un ou plusieurs espaces réservés, ce qui donne un résultat dans lequel les espaces réservés sont remplacés par leurs valeurs correspondantes. C'est une forme de traitement de modèle simple . 2 ou, en termes formels, une forme de Quasi-cotation (ou interprétation de substitution logique). L'interpolation de chaîne permet un formatage de chaîne et une spécification de contenu plus faciles et plus intuitifs par rapport à la concaténation de chaînes.

MSDN

7
brykneval

Essayez ça ça marche

  <a href="http://myurltest.com/@check1/go/5/true">
6
Nilesh Gajare

essaye ça:

<a href="@Url.Content("~/id?" + check1)">click here</a>
5
Bhupendra Shukla