Asp.net mvc 3 如何检查URL路径以应用条件(Razor)

Asp.net mvc 3 如何检查URL路径以应用条件(Razor),asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc 3,Asp.net Mvc 4,我使用这样的代码来检测浏览器,并应用条件来显示或不显示: @{ var settings=Model.PartFieldDefinition.settings.GetModel(); System.Web.httpbrowser能力基于brow=Request.Browser; } @{ if((theBrow.Browser==“IE”)&&(theBrow.MajorVersion

我使用这样的代码来检测浏览器,并应用条件来显示或不显示

@{
var settings=Model.PartFieldDefinition.settings.GetModel();
System.Web.httpbrowser能力基于brow=Request.Browser;
}
@{
if((theBrow.Browser==“IE”)&&(theBrow.MajorVersion<10))
{
@:@Model.DisplayName
@://输入的一些代码
}
其他的
{
@://输入的一些代码
}
}
我一直在试图弄清楚我是否可以(如果可以,如何)利用这个逻辑来检测用户在网站中显示或不显示的路径

例如,在任何其他路径上,我希望显示标签。但是,对于~/Services(路径)下的页面,我希望能够隐藏标签

比那复杂一点。代码位于一个编辑器模板中,该模板在整个站点中都会使用。如果我在编辑器模板中使用CSS“隐藏”标签,我将影响所有页面。我希望通过上面的逻辑可以避免这种情况,并且只在路径下的某些页面上应用我的逻辑

谢谢

更新 我尝试了以下方法:

@{
    string CurrentURL = Request.ApplicationPath;
}
<fieldset>
@{
    if ((CurrentURL == "Services")) // also tried "/Services"
    // rest of code left out for brevity
}
@{
    string CurrentURL = Request.Url.AbsoluteUri;
}
<fieldset>
@{
    if (CurrentURL.Contains("Services"))
}
@{
字符串CurrentURL=Request.ApplicationPath;
}
@{
if((CurrentURL==“服务”)//也尝试了“/服务”
//为了简洁起见,剩下的代码被省略了
}
但是标签隐藏在所有页面上,甚至在路径“~/Services”之外。我对语法一窍不通

找到答案

我做了以下工作:

@{
    string CurrentURL = Request.ApplicationPath;
}
<fieldset>
@{
    if ((CurrentURL == "Services")) // also tried "/Services"
    // rest of code left out for brevity
}
@{
    string CurrentURL = Request.Url.AbsoluteUri;
}
<fieldset>
@{
    if (CurrentURL.Contains("Services"))
}
@{
字符串CurrentURL=Request.Url.AbsoluteUri;
}
@{
if(CurrentURL.Contains(“服务”))
}

它成功了。我不知道是否有人可以发表评论,但使用以下哪一种更好:
Request.Url.AbsoluteUri
Request.Url.ToString()
(两者都有效)?

这就是您要找的:?@hemma731谢谢,但我似乎无法正确地理解语法。我想隐藏路径下的标签及其下的所有页面。因此,如果我想对“~/Services”下的所有页面执行此操作,那么正确的语法可能是什么?如果您尝试以“/Services”下的页面为目标,我是否可以假设它们都在同一控制器ServicesController或区域服务区域中处理?在这种情况下,您可以使用if(HttpContext.Current.Request.RequestContext.RouteData.values[“controller”].ToString().Equals(“Services”)…)测试路由值。。。这对你有帮助吗?