web-dev-qa-db-fra.com

erreur CS0103: le nom «» n'existe pas dans le contexte actuel

Lorsque ma vue se charge, je dois vérifier le domaine visité par l'utilisateur et, en fonction du résultat, référencer une feuille de style et une source d'image différentes pour le logo qui apparaît sur la page.

Voici mon code:

@{
    string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];

    if (currentstore == "www.mydomain.com")
    {
        <link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
        string imgsrc="/content/images/uploaded/store1_logo.jpg";
    }
    else
    {
        <link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
        string imgsrc="/content/images/uploaded/store2_logo.gif";
    }
}

Ensuite, un peu plus loin, j'appelle la variable imgsrc comme ceci:

<a href="@Url.RouteUrl("HomePage")" class="logo"><img  alt="" src="@imgsrc"></a>

Je reçois une erreur disant:

erreur CS0103: le nom "imgsrc" n'existe pas dans le contexte actuel

Je suppose que c'est parce que la variable "imgsrc" est définie dans un bloc de code qui est maintenant fermé ...?

Quelle est la bonne façon de référencer cette variable plus bas dans la page?

5
embryo

Déplacez simplement la déclaration en dehors du bloc if.

@{
string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];
string imgsrc="";
if (currentstore == "www.mydomain.com")
    {
    <link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
    imgsrc="/content/images/uploaded/store1_logo.jpg";
    }
else
    {
    <link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
    imgsrc="/content/images/uploaded/store2_logo.gif";
    }
}

<a href="@Url.RouteUrl("HomePage")" class="logo"><img  alt="" src="@imgsrc"></a>

Vous pourriez le rendre un peu plus propre.

@{
string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];
string imgsrc="/content/images/uploaded/store2_logo.gif";
if (currentstore == "www.mydomain.com")
    {
    <link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
    imgsrc="/content/images/uploaded/store1_logo.jpg";
    }
else
    {
    <link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
    }
}
7
mason