Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
初学者ASP.NET C#关于动态更改母版页的问题_C#_Asp.net - Fatal编程技术网

初学者ASP.NET C#关于动态更改母版页的问题

初学者ASP.NET C#关于动态更改母版页的问题,c#,asp.net,C#,Asp.net,好吧,事情是这样的。。。您获取用户的IP地址,并根据他/她的国家/地区将用户重定向到特定网页。现在,如何动态更改母版页?以下是我重定向用户的方式:- 这不像是用户单击某个按钮或其他东西,然后更改母版页。我希望在用户被重定向时更改它,那么我该如何做呢 public partial class testClass: System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) {

好吧,事情是这样的。。。您获取用户的IP地址,并根据他/她的国家/地区将用户重定向到特定网页。现在,如何动态更改母版页?以下是我重定向用户的方式:-

这不像是用户单击某个按钮或其他东西,然后更改母版页。我希望在用户被重定向时更改它,那么我该如何做呢

public partial class testClass: System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (redirected to site1)
        {
              Use this master page1
        }
        else
            if (redirected to site2)
            {
                Use this master page2
            }
    }
}
那么,我如何检查用户被重定向到哪个站点呢?还有,既然用户已被重定向,如何应用特定的母版页

我只是想知道怎么做

[EDIT]请检查下面的代码块。如何获取用户已重定向到的URL?实际上,我只需要“iso3166TwoLetterCode”变量的值(请参见我前面问题的链接),并基于此更改母版页。我不知道如何在testClass中获取该值,甚至无法使用该类(包含此变量)

    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (user Has been redirected to www.site.in )
        {
            this.MasterPageFile = "master1.master";
        }

        if (user Has been redirected to www.site.fr )
        {
            this.MasterPageFile = "master2.master";
        }
    }

听起来你并没有重定向到另一个站点,只是将它们发送到一个带有类似“language=en”的查询字符串的页面。如果是这样,那么您需要使用
Request.QueryString
获取它,并将其附加到基本母版页名称中。

要查找国家/地区双字母代码,请执行此示例代码的操作:

然后,您可以尝试以下操作来更改主控形状:

protected void Page_PreInit(object sender, EventArgs e)
{
    this.MasterPageFile = "NewMasterSite.master";
}

好的。如果它是一个网页。我希望如何获取URL(例如www.mysite.in),然后使用“Request.QueryString”进行检查。之后如何更改母版页?根据您的示例,您根本不使用QueryString。相反,您可能在虚拟服务器上设置了多个子域。在这种情况下,请尝试
Request.Uri
。如果这不起作用,
Request.ServerVariables[“Host”]
将起作用。请允许我自己更正:HTTP头称为“Host”,但您必须在这里通过“HTTP\u Host”引用它。或者,我认为“URL”可以满足您的要求。您能检查一下我刚才添加的其他详细信息吗??Thnx找到了如何从url获取代码..这里有帮助吗
protected void Page_PreInit(object sender, EventArgs e)
{
    this.MasterPageFile = "NewMasterSite.master";
}