servicestack,owin,C#,Internet Explorer,servicestack,Owin" /> servicestack,owin,C#,Internet Explorer,servicestack,Owin" />

C# IE将url视为下载,而不是HTML页面

C# IE将url视为下载,而不是HTML页面,c#,internet-explorer,servicestack,owin,C#,Internet Explorer,servicestack,Owin,我正在使用自托管ServiceStack开发本地服务器。我硬编码了一个演示网页,并允许在localhost:8080/页上访问它: public class PageService : IService<Page> { public object Execute(Page request) { var html = System.IO.File.ReadAllText(@"demo_chat2.html"); return 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}");
}
Firefox将此内容类型视为
text/html
,但是IE不识别此内容类型(它只识别单个
text/html

这让我相信这是由于SS中的一个bug

解决方案

一种解决方案是显式设置内容类型:

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

我不知道你到底有什么问题。如果您想为html页面提供服务,有一种不同的方法


Servicestack支持razor引擎作为插件,如果您喜欢为html页面提供服务,并且还可以使用它绑定数据,这将非常有用。不同的方法是在这里解释。这可能有用。如果您需要任何其他详细信息,请告诉我

您要发回哪些http头?特别是哪种内容类型?@jods
“内容类型:text/html,text/html”不是有效的媒体类型。
        return new HttpResult(
            new MemoryStream(Encoding.UTF8.GetBytes(html)), "text/html");