Question

Je développe un site qui doit être vu sur les appareils mobiles (téléphone portable). Je suis juste en utilisant HTML brut 4.01, rien de spécial. Les pages rendent très bien sur tous les navigateurs mobiles que nous avons testés, sauf pour Nokia Series 40 éditions 1-5th. En regardant de plus près, il semble que IIS est rendu automatiquement le code html avec le type de contenu de text/vnd.wap.wml au lieu de text/html. Puisque nous ne sommes pas en utilisant le WAP, la page échoue avec une erreur.

J'utilise ASP.Net MVC 1.0, donc j'ai ajouté un ActionFilterAttribute pour remplacer le type de contenu. Ce code se exécute, mais vient toujours comme vnd.wap.wml du côté client.
 J'utilise ce type de document;

<?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">

Il convient de noter que le vnd.wap.wml est le premier Accept-Encoding spécifié par le navigateur mobile, donc je suppose IIS7 est le servir pour cette raison. Et je suppose que MVC ne se réfère pas spécifiquement à .html (ou .aspx) fichiers, peut-être le type MIME est ignorée? Je soupçonne que c'est probablement une solution IIS plutôt que d'un code fixe.

Toute aide est très appréciée!

Était-ce utile?

La solution

que j'avais Transforme pas mis en œuvre correctement le ActionFilter .. Je devais passer outre la méthode OnResultExecuted en plus de la méthode OnActionExecuted. L'attribut complet ressemble à ceci (il suffit d'ajouter [HtmlOverrideFilter] à vos contrôleurs en cas de besoin). Espérons que cela aide quelqu'un.

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";
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top