Gibt es eine einfache Möglichkeit zur Angabe aller "normalen" Ansichten ist eine ASP.NET MVC App charset=utf-8
an die Content-Type
angehängt werden? View()
fehlt eine Überschreibung, mit der Sie die Content-Type
und ActionResult
angeben können und Freunde scheinen auch nichts auszusetzen. Die Motivation ist offensichtlich, dass Internet Explorer den "richtigen" Kodierungstyp erraten sollte, den ich wiederum machen möchte, um UTF-7 XSS-Attacken zu vermeiden.Hinzufügen von "Charset" zu allen ASP.NET MVC HTTP-Antworten
Antwort
Vielleicht macht dies in Ihrer web.config die Magie?
<configuration>
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
</configuration>
Sie könnten ein Attribut für sie schreiben:
public class CharsetAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Response.Headers["Content-Type"] += ";charset=utf-8";
}
}
Fühlen Sie sich frei, um es klüger etwas zu machen, aber das ist die allgemeine Idee. Fügen Sie es zu Ihrer Basis-Controller-Klasse hinzu und Ihre gesamte App ist abgedeckt.
Das würde gut funktionieren, wenn ich im integrierten Pipeline-Modus laufen würde, aber ich glaube nicht, dass ich auf IIS6 und früher ziemlich kopfüber mit Header umgehen darf, oder? –
Sie können sie natürlich hinzufügen; wir haben das getestet und es funktioniert. Ich habe nicht versucht, einen vorhandenen Header zu modifizieren. Versuch es einmal; es ist einfach zu testen. –
In MVC 5 dies den Trick tun können:
public class ResponseCharset : ActionFilterAttribute
{
private string Charset;
public ResponseCharset(string charset = "utf-8") {
Charset = charset;
}
public override void OnActionExecuted(HttpActionExecutedContext filterContext)
{
filterContext.Response.Content.Headers.ContentType.CharSet = Charset;
}
}
Verbrauch:
public class OrderDetailsController : ApiController
{
[ResponseCharset("utf-8")] // can be windows-1251 etc.
public Object Get(string orderId)
{
// ....
}
}
Basierend auf @ craig-Stuntz ‚s Idee.
Natürlich müssen Sie sicherstellen, dass Sie richtige Antwortcodierung geben, d. H. Die Codierung des Inhalts sollte mit der im ResponseCharset-Attribut angegebenen Codierung übereinstimmen.
Es hat mir sehr geholfen, als ich einige Mvc-Code mit Chrome getestet habe, weil es keine Kodierung im Accept-Header spezifiziert.
- 1. Hinzufügen von Namespace zu allen Ansichten in ASP.NET MVC 6
- 2. asp.net mvc hinzufügen css zu editorfor?
- 3. asp.net mvc Hinzufügen zu dem AUTHORIZE-Attribut
- 4. Hinzufügen einer ASMX-Datei zu asp.net MVC?
- 5. ASP.NET MVC Ajax Beispiel von Scott Allen arbeitet nicht
- 6. Hinzufügen von Kopfzeilen in ASP.NET MVC 3
- 7. Hinzufügen von Funscript zu einem vorhandenen ASP.NET MVC-Projekt
- 8. ASP.NET MVC - Hinzufügen von querystring "length =" zu ActionLinks?
- 9. Hinzufügen von rel und Titel zu ASP.NET MVC Action Links
- 10. ASP.Net MVC Hinzufügen von Objekten zu gebundener Dropdownliste
- 11. Hinzufügen von --color zu allen Unix-Befehlen
- 12. ASP.NET MVC Hinzufügen Controller deaktiviert
- 13. Parameterwert zu allen Objekt hinzufügen
- 14. Hinzufügen von einfachen serverseitigen Skripten zu ASP.NET
- 15. Aktionsfilter bei allen Controller-Aktionen erzwingen (C#/ASP.NET MVC)
- 16. Wie Route zu dynamischer robots.txt in ASP.NET MVC hinzufügen?
- 17. ASP.NET MVC 3 Projekt veröffentlicht funktioniert nur mit allen Projektdateien
- 18. Bedingte HTML-Attribute zu ASP.NET MVC hinzufügen Html.ActionLink
- 19. Hinzufügen eines leeren Werts zu einer DropDownList in ASP.net MVC
- 20. Wie MVC-Ansichten zu einer vorhandenen ASP.NET-Anwendung hinzufügen?
- 21. ASP.NET MVC C# Wert in Datenbank hinzufügen
- 22. Hinzufügen von Attributen zu allen untergeordneten Elementen mithilfe von Anwendungsvorlagen
- 23. Javascript Prototyp-Methode zu allen Funktionen hinzufügen?
- 24. Suffix zu allen internen URLs hinzufügen
- 25. Header zu allen ausgehenden CXF-Anfragen hinzufügen
- 26. Eigenschaft hinzufügen zu allen Objekten in Array
- 27. Swagger: Felder zu allen Endpunkten hinzufügen
- 28. Hinzufügen Asp.net MVC zu bestehenden Web-app, wie Gerüst Optionen
- 29. ASP.NET MVC automatisch einen Schrägstrich zu leeren Tags hinzufügen
- 30. Wie ID-Eigenschaft zu Html.BeginForm() in asp.net mvc hinzufügen?
+1; Ich mag das besser als mein Vorschlag, obwohl ich glaube, dass beide funktionieren werden. –
Als Referenz ist der Standardwert von requestEncoding und responseEncoding sowieso utf-8. Siehe [MSDN] (http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx) – Appetere
Aktualisierter Link zu [MSDN] (http://msdn.microsoft.com/en-gb/library/hy4kkhe0 (v = vs.100) .aspx) – Liam