MVC 6 ändern Sie die return-content-type
Scheine ich unfähig zu sein, zu ändern, die Rückkehr content-type von meinem controller-Methode in die neue Asp.net MVC 6.
Ich habe versucht, verschiedene Variationen über:
Context.Response.Headers.Add("Content-type", "text/x-vcard");
In der alten WebApi Tagen, ich konnte verwenden Sie diese, und ändern Sie den Formatierer:
return Request.CreateResponse(HttpStatusCode.OK, data, JsonMediaTypeFormatter.DefaultMediaType);
Könnte ich etwas tun, ähnlich wie in MVC 6?
- Wenn Sie format etwas in Json, warum würden Sie wollen, ändern Sie den content-type?
- Json ist ein Beispiel für eine MediaTypeFormatter. Ich will text/x-vcard. Aber ich sehe nicht, wie ich das ändern kann das MediaTypeFormatter für eine Methode, oder ändern Sie den content-type-header
- Warum dont Sie content negotiation verwenden? Wenn der Benutzer anfordert, eine Antwort geben
text/x-vcard
es wird automatisch die Antwort geben, gegeben, dass Sie haben einen Konverter für diese. Sonst wird es standardmäßig json - Der client ist der browser in diesem Fall. Ich habe keine Kontrolle über Sie.
- Haben Sie versuchen
Response.ContentType
Eigenschaft? - Ja, aber wahrscheinlich wie Dominik schon sagte, ich brauche eine benutzerdefinierte formatter-ersten. Wird test, so bald wie möglich und lassen Sie mein Ergebnis zu wissen.
- hast du es geschafft, erstellen Sie eine benutzerdefinierte formatter?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun, dass durch die Einstellung der
Produces("ResultType")
- Attribut auf die controller-action. Zum Beispiel:Den
formatter
für den Ergebnis-Typ wird verwendet, um zu konvertieren derobject
unabhängig von derAccept Header
.Aber Sie brauchen, um eine
formatter
registriert für die Antwort geben. Also, wenn Sie verwenden möchten"text/x-vcard"
müsste man erstelle einen Formatierer für, die.Zu tun, müssen Sie eine Klasse erstellen, die
IOutputFormatter
und registrieren Sie es inStartup.cs
imConfigureServices()
Methode wie diese:Hier sind einige zusätzliche Ressourcen, die helfen können, tun Sie das:
Content-negotiation in MVC 6
Formatierer in ASP.NET MVC 6
application/problem+json
wenn ich eigentlich zurückgeben ein problem, und ansonsten sollte sichapplication/json
?