Umbraco 10:检测本地主机上的浏览器/用户代理

问题描述 投票:0回答:1

我是 Umbraco 的新手,我在本地安装了一个实例 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")" />
        }
    }

我不知道我是否遗漏了什么,有什么想法吗?

谢谢

c# razor localhost umbraco
1个回答
0
投票

您好,欢迎来到 StackOverflow!

那么您正在尝试从 razor 视图中访问 Request 对象?

然后我认为这个问题实际上与 umbraco (我不太了解)有关,而是与一般的 ASP.NET razor 视图有关。

正如错误所说(“名称'Request'在当前上下文中不存在”)它不知道“Request”是什么。所以你不能直接访问它。但是任何 razor 页面都可以通过其

Context
属性访问 HttpContext(请参阅 here)。

所以你可以改变

@if(Request.Browser.IsMobileDevice ...

@if(Context.Request.Browser.IsMobileDevice ...

应该可以开始了。

© www.soinside.com 2019 - 2024. All rights reserved.