2017-11-26 10 views
3

Ich verwende .NET-Core 2.0.2 ein ASP.NET Webapp in C# zu erstellen.'Httprequest' enthält keine Definition für 'Param'

Jedesmal, wenn ich Request.Url in meinem Controller verwenden, gibt dotnet run einen Fehler:

error CS1061: 'HttpRequest' does not contain a definition for 'Url' and no extension method 'Url' accepting a first argument of type 'HttpRequest' could be found

Das gleiche geschieht mit Request.Params. Auch wenn die .NET documentation sagt, es gibt einen Getter für die Params Eigenschaft.

Ich habe eine Umgehung für Request.Url gefunden: Ich verwende die Request.GetUri() Methode. Jedoch konnte ich solch einen Ersatz für Request.Params nicht finden.

Hier sind meine using Aussagen:

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; 

Warum erhalte ich diese Fehler zu bekommen? Kennst du eine Reparatur? Haben Sie andernfalls eine Problemumgehung, um Request.Params zu erhalten?

+0

Was genau suchen Sie, aus der Sammlung Params? – Shyju

+0

Ich versuche die Twetinvi-Bibliothek zu verwenden: https://github.com/linvi/tweetinvi/wiki/Authentication. Ich führe den "URL Redirect Authentication" Beispielcode aus, wo es gibt: 'Request.Params.Get (" oauth_verifier ")'. Also möchte ich auf 'Params'' Get() 'Methode zugreifen –

+1

Sie können versuchen, Request.Query [" oauth_verifier "]' – Shyju

Antwort

2

Das Material, das Sie von allgemeinen Anfrage params erhalten verwendet zugänglich in spezifischen Eigenschaften von Request wie Query, Cookies, Form usw.

Wenn Sie einen Abfragezeichenfolgeflag Elementwert zuzugreifen versuchen, wird möglicherweise die Request.Query Eigenschaft verwenden .

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

Sie können die TryGetValue Methode für die Sammlung, den Wert erhalten, wenn es vorhanden ist.

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

HttpRequest.Params sind Sammlung von (QueryString, Form und Cookies), so dass Sie sie bekommen können:

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

HttpRequest.Params Property

+0

10 Wie ich in meiner Frage gesagt habe, weiß ich, dass ich "Request.Params" bekommen kann, wenn man bedenkt, dass die Dokumentation sagt, dass es einen Getter hat . Aber ich kann nicht ... Wie oben erklärt, bekomme ich den Fehler CS1061. –

1

HttpRequest Klasse definiert ist (auf unterschiedliche Weise) in System.Web und in Microsoft.AspNetCore.Http Namensräume. Das ehemalige hat Params Eigentum letzteres nicht. Debug zu finden, welche Art HttpRequest Sie haben (und fügen Sie richtig using...).

Verwandte Themen