gpt4 book ai didi

c# - IE 将 url 视为下载而不是 HTML 页面

转载 作者:行者123 更新时间:2023-11-30 12:47:22 24 4
gpt4 key购买 nike

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

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 会将 url 视为下载请求并提示“你想从本地主机打开还是保存页面?”

如何让IE把url当作网页? (我已经在演示页面中添加了 doctype header ;但这不能阻止 IE 将其视为下载请求。)

编辑。

好的。我在访问 localhost 时使用 Fiddler 检查响应。 IE 和 Firefox 得到的响应是完全一样的。在 header 中,内容类型写为:

Content-Type: text/html,text/html

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

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

解决方案

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

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

最佳答案

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

Servicestack 支持 razor 引擎作为插件,如果你喜欢提供 html 页面,你可以用它来绑定(bind)数据。这里解释了不同的方法。 razor.servicestack.net .这可能会有用。如果您需要任何其他详细信息,请告诉我。

关于c# - IE 将 url 视为下载而不是 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com