Frage

Ich entwickle eine Website, die auf mobilen (Handy) Geräte angesehen werden soll. Ich verwende einfach nur HTML 4.01, nichts Besonderes. Die Seiten machen fein auf allen mobilen Browsern die wir getestet haben, mit Ausnahme von Nokia Series 40 1-5th Ausgaben. Bei näherer Betrachtung scheint es, dass IIS automatisch die html mit der Content-Type von text/vnd.wap.wml statt text/html rendert. Da wir nicht WAP verwenden, schlägt die Seite mit einem Fehler.

Ich bin mit ASP.Net MVC 1.0, also habe ich ein ActionFilterAttribute hinzugefügt, um den Content-Typen zu überschreiben. Dieser Code läuft, aber noch kommt als vnd.wap.wml auf der Client-Seite.
 Ich verwende dieses Doctype;

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Es ist erwähnenswert, dass die vnd.wap.wml die erste Accept-Encoding durch den mobilen Browser angegeben ist, so nehme ich an IIS7 es dient aus diesem Grund auf. Und ich denke, wie MVC nicht speziell auf .html beziehen (oder ASPX-Dateien), vielleicht der Mime-Typ übersprungen wird? Ich vermute, dies ist wahrscheinlich ein IIS fix eher als ein Code-fix.

Jede Hilfe ist sehr geschätzt!

War es hilfreich?

Lösung

Es stellte sich heraus, dass ich hatte die Actionfilter nicht korrekt umgesetzt .. Ich brauchte die OnResultExecuted Verfahren zusätzlich zu dem OnActionExecuted Methode außer Kraft zu setzen. Das vollständige Attribut sieht wie folgt aus (fügen Sie einfach [HtmlOverrideFilter] zu Ihrem Controller, wo erforderlich). Hoffe, dass dies jemand hilft.

internal class HtmlOverrideFilter : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.ContentType = "text/html";
    } 

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.ContentType = "text/html";
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top