'HttpRequest'不包含'Params'的定义

问题描述 投票:4回答:3

我正在使用.NET Core 2.0.2在C#中创建ASP.NET Web应用程序。

每次我在控制器中使用Request.Url时,dotnet run都会输出错误:

错误CS1061:'HttpRequest'不包含'Url'的定义,并且没有扩展方法'Url'接受类型为'HttpRequest'的第一个参数'

同样的事情发生在Request.Params。即使.NET documentationParams财产有吸气剂。

我设法找到Request.Url的解决方法:我使用Request.GetUri()方法。但是我无法找到Request.Params的替代品。

这是我的using声明:

using System;
using System.Diagnostics;
using area.Models;
using Microsoft.AspNetCore.Identity;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.AspNetCore.Mvc;
using Tweetinvi;
using Tweetinvi.Models;

为什么我会收到这些错误?你知道修复吗?否则,你有一个解决方法来获得Request.Params

c# asp.net .net asp.net-core asp.net-core-mvc
3个回答
3
投票

你曾经从泛型请求参数获得的东西可以在RequestQueryCookiesForm的特定属性中访问。

如果您尝试访问查询字符串项值,则可以使用Request.Query属性。

var v = Request.Query["oauth_verifier"];

您可以在集合上使用TryGetValue方法来获取值(如果存在)。

if (Request.Query.TryGetValue("oauth_verifier",out StringValues val))
{
    var theValue = val[0];
    var orUseThis = val.ToString();
    // Use theValue as needed
}

1
投票

HttpRequest类在System.WebMicrosoft.AspNetCore.Http名称空间中定义(以不同的方式)。前者有Params财产,后者没有。调试找到你有什么样的HttpRequest(并添加适当的using...)。


0
投票

HttpRequest.Params是(QueryStringFormCookies)的集合,所以你可以得到它们:

HttpContext.Request.Cookies;
HttpContext.Request.QueryString;
HttpContext.Request.Form;

HttpRequest.Params Property

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