错误CS0103: 当前上下文中不存在名称''。

11
当我的视图加载时,我需要检查用户访问的域,根据结果引用不同的样式表和Logo图片源。这是我的代码:
@{
    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";
    }
}

然后,再往下一点,我这样调用imgsrc变量:

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

我收到了一个错误信息:

error CS0103: 当前上下文中不存在“imgsrc”名称

我想这是因为“imgsrc”变量是在一个代码块中定义的,而该代码块现在已经关闭了……?
在页面下方引用这个变量的正确方法是什么?
2个回答

12

只需将声明移到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>

你可以让它更加整洁。

@{
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" />
    }
}

-3
using System;
using System.Collections.Generic;                    (помогите пожалуйста та же самая
using System.Linq;                                     ошибка PlayerScript.health = 
using System.Text;                                      999999; вот на этот скрипт)                                  
using System.Threading.Tasks;
using UnityEngine;

namespace OneHack
{
    public class One
    {
        public Rect RT_MainMenu = new Rect(0f, 100f, 120f, 100f); //Rect это месторасположение меню по x,y и высота, ширина.
        public int ID_RTMainMenu = 1;
        private bool MainMenu = true;
        private void Menu_MainMenu(int id) //Главное меню
        {
            if (GUILayout.Button("Название вашей кнопки", new GUILayoutOption[0]))
            {
                if (GUILayout.Button("Бессмертие", new GUILayoutOption[0]))
                {
                    PlayerScript.health = 999999;//При нажатии на кнопку у игрока устанавливается здоровье 999999  //Здесь код, который будет происходить при нажатии на эту кнопку
                }
            }
        }
        private void OnGUI()
        {
            if (this.MainMenu)
            {
                this.RT_MainMenu = GUILayout.Window(this.ID_RTMainMenu, this.RT_MainMenu, new GUI.WindowFunction(this.Menu_MainMenu), "MainMenu", new GUILayoutOption[0]);
            }
        }
        private void Update() //Постоянно обновляемый метод, все что здесь будет написанно будет создаваться бесконечно
        {
            if (Input.GetKeyDown(KeyCode.Insert)) //Кнопка на которую будет открываться и закрываться меню, можно поставить другую
            {
                this.MainMenu = !this.MainMenu;
            }
        }
    }
}

欢迎来到StackOverflow。请提供一些解释,为什么您认为您的解决方案可能会帮助OP。 - Peter Csala
1
@PeterCsala,我用谷歌翻译将他的代码翻译成英文,在右上角显示“请帮帮忙”,所以他可能有同样的问题,而不是试图回答。无论如何,他没有解释他需要什么... - TBD
1
“не существует в текущем контексте”通常意味着您缺少“using”操作符或变量超出范围。在下面的情况中,您可能需要从某个地方获取“PlayerScript”,在Unity中使用“GameObject.GetComponent(“UnityNameOfMyPlayerScriptObject”)”。https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html 另外,请下次直接开始您自己的问题,而不是在底部发布其他内容。 - m1m1k
“在当前上下文中不存在”通常意味着您缺少“using”语句或变量超出范围。在您的情况下,您可能需要从某个地方获取“PlayerScript”,Unity有“GameObject.GetComponent('UnityNameOfMyPlayerScriptObject')”。https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html 另外,请下次直接提出自己的问题,而不是在其他问题底部发布。 - m1m1k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接