如何在ASP.net Core中的Layout视图中获取URL?

3

我需要将一个 MVC 项目迁移到 .net Core,我知道 ASP.net Core 中删除了 System.Web,我需要获取当前的 url,并根据其值来显示相同的 layout,但是带有一些变化。

这是我在MVC中的代码,我需要将其翻译成ASP.net Core:

 public class LIGCalculators
    {

        public static bool LargePano(Uri url)
        {

            var path = url.AbsolutePath.ToLower();
            if (path == "/")
            {
                return true;
            }
            if (path.Contains("Home"))
            {
                return true;
            }
            return false;
        }
    }

布局视图(MVC),在CoreRequest.Url不起作用:

  @if (LIGCalculators.LargePano(Request.Url))
    {
        <div class="blue"></div>
        <div class="pano-bg"></div>
        <div class="bgs">
            <div class="orangeL"></div>
            <div class="blue2L"></div>
        </div>
    }
    else
    {
        <div class="blue-big"></div>
        <div class="small-pano-bg"></div>
        <div class="bgs">
            <div class="orange"></div>
            <div class="blue2"></div>
        </div>
    }

在ASP.net Core中没有显示错误,但我该如何从布局调用此方法?如何将url作为参数发送?

 public static bool LargePano(Uri url)
        {
           // return true;
            var path = url.AbsolutePath.ToLower();
            if (path == "/")
            {
                return true;
            }
            if (path.Contains("Home"))
            {
                return true;
            }
            return false;
        }
1个回答

17

我用这段代码实现了它:

 @{ 
           Uri url = new Uri(String.Format("{0}://{1}{2}{3}", Context.Request.Scheme, Context.Request.Host, Context.Request.Path, Context.Request.QueryString));           
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接