好的,这就是......您获取用户的IP地址,并根据他/她的国家/地区将用户重定向到特定的网页。现在,如何动态更改母版页?这就是我重定向用户的方式: -
Geolocation error with IP address 127.0.0.1
这不像用户点击某个按钮或其他内容,然后您更改母版页。我希望在用户重定向时更改它,那么我该怎么做呢?
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
}
}
}
那么如何查看用户被重定向到哪个站点?现在如何应用特定的母版页,用户已被重定向?
我只是想知道如何去做。
[编辑]请检查下面的代码块。如何获取用户已重定向到的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";
}
}
答案 0 :(得分:1)
要查找国家/地区的双字母代码,请执行http://ipaddressextensions.codeplex.com/中的示例代码:
using System.Net;
using WorldDomination.Net;
string userHostIpAddress = "203.1.2.3";
IPAddress ipAddress;
if (IPAddress.TryParse(userHostIpAddress, out ipAddress))
{
string country = ipAddress.Country(); // return value: UNITED STATES
string iso3166TwoLetterCode = ipAddress.Iso3166TwoLetterCode(); // return value: US
}
然后你可以尝试这样的东西来改变主人:
protected void Page_PreInit(object sender, EventArgs e)
{
this.MasterPageFile = "NewMasterSite.master";
}
答案 1 :(得分:0)
听起来你没有重定向到另一个网站,只是将它们发送到一个像“language = en”这样的查询字符串的页面。如果是这样,那么您需要使用Request.QueryString
获取它并将其附加到基本母版页名称。