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>

我一直在试图弄清楚我是否可以(如果可以,如何)我可以利用这个逻辑来检测用户在网站中显示或不显示的路径<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.AbsoluteUriRequest.Url.ToString()(两者都有效)?

4

0 回答 0