我在不使用MVC的情况下在ASP.Net和C#中开发多语言Web应用程序。首次访问时,用户必须选择语言。国家和城市可选。然后,该页面将通过将语言,国家和城市附加到主机名来重定向。
例如,如果主机名是
http://example.com
该页面将重定向为
http://example.com/en/us/new-york
应用程序中有不同的页面,如家庭,图库,产品,功能等。我希望将语言,国家和城市的网址添加到应用程序中的所有网址
http://example.com/en/us/new-york/home
http://example.com/en/us/new-york/gallery
http://example.com/en/us/new-york/products
我想将http://example.com/en/us/new-york/
作为基本URI或将其设置为全局变量以将其添加到href
在某些情况下,用户可能无法选择国家/地区或城市。那么基URI应该是
http://example.com/en/home
http://example.com/en/us/gallery
http://example.com/en/us/features
我在类中创建了一个函数,这样我就可以在Master页面和Child页面中使用该函数。
public class urls
{
public static string PrependURL(string Language, string Country, string City)
{
StringBuilder url = new StringBuilder("/");
if (Country == "" && City == "")
url.Append(Language);
else if (Country != "" && City == "")
url.Append(Language).Append("/").Append(Country);
else if (Country != "" && City != "")
url.Append(Language).Append("/").Append(Country).Append("/").Append(City);
return url.ToString();
}
}
并将该功能用作
<a href="<%= urls.PrependURL(Request.QueryString["language"].ToString(), Request.QueryString["country"].ToString(), Request.QueryString["city"].ToString()) %>/home">Home</a>
<a href="<%= urls.PrependURL(Request.QueryString["language"].ToString(), Request.QueryString["country"].ToString(), Request.QueryString["city"].ToString()) %>/products">Products</a>
<a href="<%= urls.PrependURL(Request.QueryString["language"].ToString(), Request.QueryString["country"].ToString(), Request.QueryString["city"].ToString()) %>/features">Features</a>
我不想多次调用一个函数。如何将其设置为全局变量,以便我可以将其添加为
<a href="<%= globalBaseURI %>/home">Home</a>
<a href="<%= globalBaseURI %>/features">Features</a>
我试图使用C#代码背后的公共变量。但是无法访问它。