如何检查应用条件的URL路径(Razor)

时间:2013-11-05 03:41:20

标签: asp.net-mvc-3 asp.net-mvc-4

我使用这样的代码来检测浏览器并应用条件来显示或不显示<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()(两者都有效)?

0 个答案:

没有答案