微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – asp.net mvc使用.wml保持覆盖text/html内容类型

我正在开发一个可在移动(手机)设备上观看的网站.我只是使用纯HTML 4.01,没什么特别的.除诺基亚Series 40第1-5版外,我们测试过的所有移动浏览器都能正常显示这些页面.仔细观察,似乎IIS会自动使用text / vnd.wap.wml的内容类型而不是text / html呈现html.由于我们没有使用WAP,因此页面失败并显示错误.

我正在使用ASP.Net MVC 1.0,所以我添加一个ActionFilterattribute来覆盖内容类型.此代码运行但仍在客户端以vnd.wap.wml的形式出现.
我正在使用这个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\"\u0026gt; 值得注意的是,vnd.wap.wml是移动浏览器指定的第一个Accept-Encoding,因此我假设IIS7正在为此提供服务.我想因为MVC并没有特别提到.html(或.aspx)文件,可能会跳过mime类型?我怀疑这可能是一个IIS修复而不是代码修复. 任何帮助深表感谢!

解决方法

事实证明我没有正确实现ActionFilter ..除了OnActionExecuted方法之外,我还需要覆盖OnResultExecuted方法.完整属性如下所示(只需在需要时将[HtmloverrideFilter]添加到控制器中).希望这有助于某人.
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";
    }
}

原文地址:https://www.jb51.cc/aspnet/251734.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐