6

このようなコードを使用してブラウザを検出し、表示または非表示の条件を適用しています<label>

@{
var settings = Model.PartFieldDefinition.Settings.GetModel();
System.Web.HttpBrowserCapabilitiesBase theBrow = Request.Browser;
}
<fieldset>
@{
   if ((theBrow.Browser == "IE") && (theBrow.MajorVersion < 10)) 
   {
       @:<label>@Model.DisplayName</label>
       @://Some Code for inputs
   }
   else 
   {
        @://Some Code for inputs
   }
}
</fieldset>

私は、このロジックを利用して、ユーザーがWebサイト内のどのパスを表示または非表示にするかを検出できるかどうか(およびその方法)を理解しようとしています<label>

たとえば、ラベルを表示したい他のパスでは。ただし、 ~/Services (パス) の下のページについては、ラベルを非表示にできるようにしたいと考えています。

それよりも少し複雑です。コードは、サイト全体で使用されるエディター テンプレートにあります。エディター テンプレートで CSS を使用してラベルを「非表示」にすると、すべてのページに影響します。上記のロジックでそれを回避し、パスの下の特定のページにのみロジックを適用できることを望んでいました。

ありがとう。

更新 私は次のことを試しました:

@{
    string CurrentURL = Request.ApplicationPath;
}
<fieldset>
@{
    if ((CurrentURL == "Services")) // also tried "/Services"
    // rest of code left out for brevity
}

ただし、パス「~/Services」の外であっても、ラベルはすべてのページで非表示になっています。構文にこだわっています。

見つかった答え

私は次のことをしました:

@{
    string CurrentURL = Request.Url.AbsoluteUri;
}
<fieldset>
@{
    if (CurrentURL.Contains("Services"))
}

そしてそれはうまくいきました。誰かがコメントできるかどうかはわかりませんが、どちらを使用するのが良いでしょうか:Request.Url.AbsoluteUriまたはRequest.Url.ToString()(どちらも機能します)?

4

0 に答える 0