提问人:Jamaal 提问时间:9/12/2023 最后编辑:NimanthaJamaal 更新时间:10/25/2023 访问量:53
Umbraco 10:在本地主机上检测浏览器/userAgent
Umbraco 10 : Detection of browser / userAgent on localhost
问:
我已经在本地安装了实例 V12。
我正在尝试检查移动设备和其他设备
我得到的错误消息是这样的:
编译处理此请求所需的资源时出错。请查看以下特定错误详细信息,并相应地修改源代码。
名称“Request”在当前上下文中不存在
- @if(Request.Browser.IsMobileDevice && !Request.UserAgent.Contains(“iPad”) && !Request.UserAgent.Contains(“平板电脑”))
我的代码:
@inherits Umbraco.Cms.Web.Common.Macros.PartialViewMacroPage;
@{
var imageCrop = Model.MacroParameters["crop"].ToString();
}
<div class="heading">
<div class="heading01">@Model.Content.Value("bannerTitle")</div>
<div class="heading02">@Model.Content.Value("bannerSubtitle")</div>
</div>
@if(Model.Content.HasValue("videoLink"))
{
<div class="play-video" data-fancybox href="@Model.Content.Value("videoLink")">
<span>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 21">
<polygon points="16.9,10.5 0.1,21 0.1,0 "/>
</svg>
</span>
</div>
}
<div class="overlay"></div>
@if(Request.Browser.IsMobileDevice && !Request.UserAgent.Contains("iPad") && !Request.UserAgent.Contains("Tablet"))
{
<img src="@Model.Content.GetCropUrl("bannerImage", "mobile")" class="img-fluid" alt="@Model.Content.Value("altTag")" />
}
else
{
if(imageCrop == "crop")
{
<img src="@Model.Content.GetCropUrl("bannerImage", "crop")" class="img-fluid" alt="@Model.Content.Value("altTag")" />
}
else
{
<img src="@Model.Content.GetCropUrl("bannerImage", "full")" class="img-fluid" alt="@Model.Content.Value("altTag")" />
}
}
我错过了什么吗?
答:
1赞
Jan Köhler
9/13/2023
#1
所以你正在尝试从 razor 视图中访问 Request 对象?
然后我认为这个问题与 umbraco(我真的不知道)无关,而是与一般 ASP.NET 剃刀视图有关。
正如错误所说(“名称'请求'在当前上下文中不存在”),它不知道“请求”是什么。因此,您无法直接访问它。但是,任何剃刀页面都允许你通过其属性访问 HttpContext(请参阅此处)。Context
所以你可以改变
@if(Request.Browser.IsMobileDevice ...
自
@if(Context.Request.Browser.IsMobileDevice ...
评论