Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我不能';无法从用户控制器获取值_C#_Asp.net_Asp.net Mvc_Master Pages_Multilingual - Fatal编程技术网

C# 我不能';无法从用户控制器获取值

C# 我不能';无法从用户控制器获取值,c#,asp.net,asp.net-mvc,master-pages,multilingual,C#,Asp.net,Asp.net Mvc,Master Pages,Multilingual,这是我的问题。我有一个母版页,其中包含一些设置网页语言的标志 在母版页中,我有一个包含菜单项的用户控制器。这些菜单项取决于所选的标志,它会改变 当我查看web应用程序的生命周期时,首先运行mainpage_loader,然后运行user control loader,最后, 运行主页面内定义的函数(标志按钮函数) 但我需要的是在用户控件内获取会话值。取决于此会话值,加载菜单取决于选择的语言。 但是在这种情况下,我从来没有捕捉到会话值,在用户控件中传递step masterpage函数之后。 我怎

这是我的问题。我有一个母版页,其中包含一些设置网页语言的标志

在母版页中,我有一个包含菜单项的用户控制器。这些菜单项取决于所选的标志,它会改变

当我查看web应用程序的生命周期时,首先运行mainpage_loader,然后运行user control loader,最后, 运行主页面内定义的函数(标志按钮函数)

但我需要的是在用户控件内获取会话值。取决于此会话值,加载菜单取决于选择的语言。 但是在这种情况下,我从来没有捕捉到会话值,在用户控件中传递step masterpage函数之后。 我怎样才能解决这个问题。谢谢

我的主页

     protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["lang"]==null)
                {
                    Session["lang"] = "m_en";

                }
                else
                {

                }

            }


         [DirectMethod(IDMode = DirectMethodProxyIDMode.None)]
            public void Change_Lang_Event(string lang)
            {    
                CultureInfo ci;

                switch (lang)
                {
                    case "m_tr":
                        ci = new CultureInfo("tr-TR");
                        Session["lang"] = "m_tr";
//problem is here I coulnt reach Language properti
       ((UserControl)Page.Master.FindControl("MyMenu1")).Language = Session["lang"].ToString();


                        break;
                    case "m_en":
                        ci = new CultureInfo("en-US");
                        Session["lang"] = "m_en";



                        break;
                    case "m_ru":
                        ci = new CultureInfo("ru-RU");
                        Session["lang"] = "m_ru";




                    default:
                       ci = new CultureInfo("tr-TR");
                        Session["lang"] = "m_tr";


                        break;
                }
我的用户控件:

 public partial class MyMenu : System.Web.UI.UserControl

{
    static List<Ofis> lst;
    static CultureInfo cim;
    string dilSesion = "";
    private string _languages;

    public string Languages
    {
        get { return _languages; }
        set { _languages = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

       dilSesion =   Session["lang"].ToString();
      X.Msg.Alert("Uyarı", dilSesion).Show();


    }



}
public部分类MyMenu:System.Web.UI.UserControl
{
静态列表lst;
静态文化信息cim;
字符串dilSesion=“”;
私有字符串语言;
公共字符串语言
{
获取{return\u languages;}
设置{u语言=值;}
}
受保护的无效页面加载(对象发送方、事件参数e)
{
dilSesion=Session[“lang”].ToString();
X.Msg.Alert(“Uyarı”,dilSesion).Show();
}
}
主aspx

 <asp:Contentplaceholder id="Contentplaceholder1" runat="server">
            <uc1:MyMenu ID="MyMenu1" runat="server" />
        </asp:Contentplaceholder>

如果在UserControl中定义属性,即

private string _language;

public string Language
{
    get
    {
        return _language;
    }

    get
    {
        return _language;
    }

}
然后您可以在母版页代码中设置它:

((UserControl)Page.Master.FindControl('controlID')).Language = Session["lang"].ToString()

请注意,用户控件必须强制转换到您的UserControl类。

如果您在UserControl中定义属性,即

private string _language;

public string Language
{
    get
    {
        return _language;
    }

    get
    {
        return _language;
    }

}
然后您可以在母版页代码中设置它:

((UserControl)Page.Master.FindControl('controlID')).Language = Session["lang"].ToString()

请注意,用户控件必须强制转换到您的UserControl类。

不错的一个,如果对您有效,请接受。:)谢谢。如果仍然有效,请等待5分钟,很好,如果对您有效,请接受。:)谢谢,如果还可以的话,等5分钟,我找不到语言属性我已经更新了,添加了演员阵容,它需要转换到你的用户控件类才能使属性可见。亲爱的,它仍然是不允许的。它说我system.web.ui.usercontroler dosent caontain使用定义语言更新你的答案,使用完整的用户控件代码,我将能够看到发生了什么。我无法访问语言属性我已更新它以添加转换,它将需要强制转换到您的用户控件类以使属性可见。亲爱的,它仍然是不允许的。它说我system.web.ui.UserController dosent caontain使用定义语言更新您的答案,并使用完整的用户控件代码,我将能够看到发生了什么。