asp.net网站的URL“localhost:port /”问题

时间:2012-01-14 07:54:00

标签: c# asp.net virtual-directory

我正在处理一个应用程序并且我以编程方式生成菜单,因为我在本地计算机上工作我的网站路径就像

http://localhost:55954/VirtualPathName/Default.aspx

以下是从数据库生成菜单的代码

 String sHost, sHostWithPort, sAbsolutePath, sApplicationPath,sAbsoluteUri,sPathAndQuery,sPageID, sLangCode;

    sHost = "http://"+HttpContext.Current.Request.Url.Host;
    sHostWithPort = "http://" + HttpContext.Current.Request.Url.Authority;
    sAbsolutePath = HttpContext.Current.Request.Url.AbsolutePath;
    sApplicationPath = HttpContext.Current.Request.ApplicationPath;
    sAbsoluteUri = HttpContext.Current.Request.Url.AbsoluteUri;
    sPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;

       //Create Top Menu
        StringBuilder sb = new StringBuilder();
        if (dsMenu != null && dsMenu.Tables.Count > 0 && dsMenu.Tables[0].Rows.Count > 0)
        {
            for (int i = 0; i < dsMenuRowCount; i++)
            {
                sb.Append("<div class='divlink' href='" + dsMenu.Tables[0].Rows[i]["PageInternalLinkURL"] + "?PageId=" + dsMenu.Tables[0].Rows[i]["PageId"] + "&Language=" + sLangCode + "'>" + dsMenu.Tables[0].Rows[i]["PageName"] + "</a></div>");
            }
        }

        ltrMenu.Text = sb.ToString();

代码工作正常,但是当我必须将代码上传到Web服务器时,我必须在for循环中修改以下语句

sb.Append("<div class='divlink' href='" + sHostWithPort + dsMenu.Tables[0].Rows[i]["PageInternalLinkURL"] + "?PageId=" + dsMenu.Tables[0].Rows[i]["PageId"] + "&Language=" + sLangCode + "'>" + dsMenu.Tables[0].Rows[i]["PageName"] + "</a></div>"

我必须从网站网址中取出 sApplicationPath ,这样网址就像

http://www.xyz.com/Default.aspx

我搜索解决这个问题,但到目前为止我还没能解决。代码赞赏​​任何帮助,以便我在Web服务器上传文件时不必更改路径。

注意: - 我这么傻。我找到了解决方案。谢谢大家

我刚删除了以下部分。 + sHostWithPort + sApplicationPath +“/”

谢谢大家,请不要将其标记为 - 有时我们会犯这样的错误。我不知道如何删除问题。

1 个答案:

答案 0 :(得分:-1)

我刚刚将网址设为相对网址

我刚删除了以下部分。 + sHostWithPort + sApplicationPath +“/”

谢谢大家,请不要将其标记为 - 有时我们会犯这样的错误。我不知道如何删除问题。