将锚添加到aspx页面并获取域名

时间:2012-02-07 15:55:11

标签: c# asp.net

您好我正在尝试添加一个拉入域名的锚点然后我可以在此之后拥有任何内容,例如

<a href="GET_THE_DOMAIN+/admin/pages/customers/add.aspx">ADD CUSTOMERS</a>

如何在没有硬编码的情况下获取域名,因为我们将使用相同的网站但在不同的域中使用不同的内容,换句话说,唯一改变的是域

谢谢

3 个答案:

答案 0 :(得分:4)

你不能只使用绝对链接而不用域吗?

<a href="/admin/pages/customers/add.aspx">ADD CUSTOMERS</a>

答案 1 :(得分:3)

您可以创建一个基页,所有aspx页面都从该基页继承并添加以下函数:

 public string RootUrl(bool includeAppPath = false)
    {
        var context = HttpContext.Current;
        var port = context.Request.ServerVariables["SERVER_PORT"];
        if (port == null || port == "80" || port == "443")
        {
            port = "";
        } else
        {
            port = ":" + port;
        }
        var protocol = context.Request.ServerVariables["SERVER_PORT_SECURE"];
        if (protocol == null || protocol == "0")
        {
            protocol = "http://";
        }else
        {
            protocol = "https://";
        }
        var appPath = "";
        if (includeAppPath)
        {
            appPath = context.Request.ApplicationPath;
            if (appPath == "/")
                appPath = "";
        }

        var sOut = protocol + context.Request.ServerVariables["SERVER_NAME"] + port + appPath + "/";
        return sOut;
    }

然后在您的锚标签中,您可以按如下方式调用该函数:

 <a href='<%= RootUrl() %>/admin/pages/customers/add.aspx'>ADD CUSTOMERS</a>

答案 2 :(得分:3)

您可以使用以下内容:

<a href="<%=Request.Url.Host%>/admin/pages/customers/add.aspx">ADD CUSTOMERS</a>

话虽如此,为什么不能在没有域的情况下使用绝对URL?