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");

1 つの Web フォームのみを使用している場合 (つまり、 のみDefault.aspx)、関連するクエリ文字列が URL に含まれていないことを確認し、該当する場合にのみ表示できます。

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

ただし、この手法を使用している場合は、アプリケーションをより適切に構成するために、将来的にはマスター ページを使用して複数の Web フォームを使用することをお勧めします。

ASP.NET Web サイトには、これを行う方法に関する優れたチュートリアルがいくつかあります。

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

于 2012-07-11T15:10:41.610 に答える