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