1

我需要获取站点的 url,以便仅在主页上呈现用户控件。我需要检查http://foo.comhttp://www.foo.com和 foo.com。我对如何检查所有 3 项感到有些困惑。我尝试了以下方法,但它不起作用。

string domainName = Request.Url.Host.ToString();
    if (domainName == "http://nomorecocktails.com" | Request.Url.Host.Contains("default.aspx"))

    { //code to push user control to page

也试过

var url = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/";

有什么想法吗?

4

2 回答 2

2

您需要检查该Request.Path属性是否等于//Default.aspx您的“主页”是什么。域名完全无关紧要。如果我通过 访问您的网站http://192.56.17.205/会怎样,同样,如果您的服务器切换 IP 地址会怎样?您的域检查将失败。

如果您使用 QueryString 来显示不同的内容,您还需要检查Request.QueryString.

文档Request.Path

http://msdn.microsoft.com/en-us/library/system.web.httprequest.path.aspx

文档Request.QueryString

http://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring.aspx

于 2012-07-11T15:09:54.247 回答
0

如果您需要用户控件仅出现在主页上(我假设您的意思是主页),那么将调用用户控件的代码添加到该文件后面的代码中。

如果此代码存储在母版页中,那么您可以像这样引用它:

Master.FindControl("UserControlID");

如果您只使用一个 Web 表单(即 just Default.aspx),那么您可以检查 URL 中是否包含相关查询字符串,并且仅在这种情况下才显示:

if (Request.QueryString["q"] == null){
  //user control code
}

但是,如果您正在使用这种技术,那么我建议您在将来使用多个使用母版页的 Web 表单来更好地构建您的应用程序。

ASP.NET 网站上有一些关于如何做到这一点的很好的教程:

http://www.asp.net/web-forms/tutorials/master-pages

于 2012-07-11T15:10:41.610 回答