我正在使用自托管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)!
解
return new HttpResult( new MemoryStream(Encoding.UTF8.GetBytes(html)),"text/html");
解决方法
我不知道你的确切问题是什么.如果你想提供html页面,有一种不同的方式来做到这一点.
Servicestack支持razor引擎作为插件,如果你喜欢提供html页面,你也可以用它来绑定数据.这里解释了不同的做法. razor.servicestack.net这可能很有用.如果您需要任何其他细节,请与我们联系.