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这可能很有用.如果您需要任何其他细节,请与我们联系.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...