当前位置: 首页 > 知识库问答 >
问题:

如何在ASP.NET核心MVC中获取Url引用?

王叶五
2023-03-14

我正在尝试将ASP.NET MVC webform迁移到ASP.NET核心MVC。当前,request.urlreferrer类遇到问题。

原来的行是:

    [HttpPost]
    public async Task<ActionResult> ContactUsFormSubmit(ContactUs request)
    {
        var siteUrl = Request.UrlReferrer.ToString().ToLower();
        ....
    }

但是,对于ASP.NET核心,UrlReferrer不可用。我发现了以下内容:

    Request.Headers["Referer"]

它返回StringValues而不是String。我不确定我是否应该尝试使用这一个,或者是否有任何其他解决办法来解决这种情况。request.servervariables也不可用,或者我没有该命名空间。我的命名空间如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

如果有人能指引我正确的方向,我会非常感激的。

共有1个答案

邓阳伯
2023-03-14

你就快到了。StringValues类只是ASP.NET用来在框架中有效表示字符串的一种类型。特别是在HttpContext对象中。您只需对其调用ToString()即可将其转换为字符串:

string referer = Request.Headers["Referer"].ToString();
 类似资料:
  • 我正在从.NET Framework迁移到.NET 5.0,并且我正在尝试使用Razor视图中的变量,就像普通的asp MVC一样,变量中存在语法错误 错误:“@page”指令必须位于Razor文件中定义的所有其他元素之前。 错误:“page”指令必须出现在行的开头。 错误:“page”指令值必须用空格分隔。 代码:

  • .NET核心和ASP.NET核心到底有什么区别?

  • 在ASP.NET MVC5中,您可以抛出一个带有HTTP代码的HttpException,这将设置如下所示的响应: ASP.NET核心中不存在。等价代码是什么?

  • IServiceProvider是一个具有单一方法的接口: 它用于创建已注册的类型的实例。NET Core原生DI容器。 可以通过调用IServiceCollection的方法来获得IServiceProvider自身的实例。它似乎是通过框架的实例神奇地调用的。 我想创建一个的实例,而不需要方法。我需要它来解决集成测试程序集中的依赖关系。在这种情况下有可能得到它吗?

  • 我目前正在学习。NET核心,我正试图在ASP.NET核心MVC 3.1中使用身份框架进行用户管理。在< code >控制器中,我有一个< code > RoleManagerController ,带有< code>EditRole GET和POST,如下所示: 基于GET,我在文件夹中创建了一个名为的视图,如下所示: 这是我在中配置的内容.cs 但是当我尝试编辑角色并使用角色id访问路线时,页面