如何设置基URI并将其添加到asp.net中的所有href

时间:2016-01-08 12:16:26

标签: c# asp.net uri

我在不使用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#代码背后的公共变量。但是无法访问它。

0 个答案:

没有答案