Ich versuche, ein ASP.NET MVC-Webformular auf ASP.NET Core MVC zu migrieren. Derzeit habe ich Probleme mit der Request.UrlReferrer
Klasse.
Die ursprüngliche Zeile lautet:
[HttpPost]
public async Task<ActionResult> ContactUsFormSubmit(ContactUs request)
{
var siteUrl = Request.UrlReferrer.ToString().ToLower();
....
}
Mit ASP.NET Core ist UrlReferrer jedoch nicht verfügbar. Ich habe folgendes gefunden:
Request.Headers["Referer"]
Dies gibt StringValues anstelle eines Strings zurück. Ich bin mir nicht sicher, ob ich versuchen sollte, diese zu verwenden, oder ob es andere Lösungen für diese Situation gibt. Request.ServerVariables
ist auch nicht verfügbar oder vielleicht habe ich den Namespace nicht. Meine Namespaces lauten wie folgt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
Ich würde mich sehr freuen, wenn mich jemand in die richtige Richtung lenken kann.
c#
asp.net-core
asp.net-core-mvc
Kemal Tezer Dilsiz
quelle
quelle
Antworten:
Du bist fast da. Die
StringValues
Klasse ist nur ein Typ, den ASP.NET verwendet, um Zeichenfolgen im Framework effizient darzustellen. Besonders imHttpContext
Objekt. Sie können es einfach aufrufenToString()
, um es in einen String zu konvertieren:quelle
Ab asp.net Core 2 verwenden
GetTypedHeaders
quelle
Hier ist, wie ich URL-Referrer bekam: -
quelle
fast das gleiche wie die akzeptierte Antwort ohne die magische Schnur
quelle
Nuget
Paket (Microsoft.AspNetCore.Server.Kestrel
) ... wurde dies auch getestet, um zu funktionierenIISExpress
?SSL
? etc.?