我是 Umbraco 的新手,我在本地安装了一个实例 V12。
我正在尝试检查移动设备和其他设备
我收到的错误消息是这样的:
编译处理此请求所需的资源时发生错误。请查看以下具体错误详细信息并适当修改您的源代码。
名称“Request”在当前上下文中不存在
我的代码:
@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")" />
}
}
我不知道我是否遗漏了什么,有什么想法吗?
谢谢
您好,欢迎来到 StackOverflow!
那么您正在尝试从 razor 视图中访问 Request 对象?
然后我认为这个问题实际上与 umbraco (我不太了解)有关,而是与一般的 ASP.NET razor 视图有关。
正如错误所说(“名称'Request'在当前上下文中不存在”)它不知道“Request”是什么。所以你不能直接访问它。但是任何 razor 页面都可以通过其
Context
属性访问 HttpContext(请参阅 here)。
所以你可以改变
@if(Request.Browser.IsMobileDevice ...
到
@if(Context.Request.Browser.IsMobileDevice ...
应该可以开始了。