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

c# – IE将URL视为下载而不是HTML页面

我正在使用自托管ServiceStack开发本地服务器.我硬编码了一个演示网页,允许它在localhost:8080 /页面访问:

public class PageService : IService<Page>
{
    public object Execute(Page request)
    {
        var html = System.IO.File.ReadAllText(@"demo_chat2.html");
        return html;
    }
}

// set route
public override void Configure(Container container)
{
    Routes
            .Add<Page>("/page")
            .Add<Hello>("/hello")
            .Add<Hello>("/hello/{Name}");
}

它适用于Chrome / Firefox / Opera,但IE会将该网址视为下载请求,并宣传“您是否要从localhost打开或保存页面?”

我该怎么做才能让IE将网址视为网页? (我已经在演示页面添加了doctype标题;但是这不能阻止IE将其视为下载请求.)

编辑.

好.我在访问localhost时使用了fiddler来检查响应. IE和Firefox获得的响应完全相同.在标题中,内容类型写为:

Content-Type: text/html,text/html

Firefox将此内容类型视为text / html,但IE无法识别此内容类型(它只识别单个文本/ html)!

所以这让我相信这是由于SS中的一个错误.

一种解决方案是明确设置内容类型:

return new HttpResult(
            new MemoryStream(Encoding.UTF8.GetBytes(html)),"text/html");

解决方法

我不知道你的确切问题是什么.如果你想提供html页面,有一种不同的方式来做到这一点.

Servicestack支持razor引擎作为插件,如果你喜欢提供html页面,你也可以用它来绑定数据.这里解释了不同的做法. razor.servicestack.net这可能很有用.如果您需要任何其他细节,请与我们联系.

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

相关推荐