5

我正在创建一个非常简单的网站,最初只是一堆 HTML / CSS 文件。然后我需要添加一点服务器端逻辑,所以我想我会使用 ASP.NET 网页,因为它们听起来像是一个合适的解决方案。

所以我改成index.htmlindex.cshtml添加了我需要的代码,我虽然就是这样(我还添加了这个基本web.config文件:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

但是,在本地 IIS Express 上启动它会产生这个错误:

无法确定要使用的 ASP.NET 网页版本。

要使用此站点,请在站点的 web.config 文件中指定一个版本。有关详细信息,请参阅 Microsoft 支持站点上的以下文章:http: //go.microsoft.com/fwlink/ ?LinkId=254126

所以我将此添加到我的web.config

<appSettings >
    <add key="webPages:Version" value="2.0" />
</appSettings >

现在网站启动了,但处理 UTF-8 真的很奇怪——尽管所有 HTTP 标头、文件编码和元标记都正确设置为 UTF-8,但我的国家字符显示不正确。我发现了这个问题:Do I need web.config for non-ASCII characters?但它并没有真正解决我的问题。

不过,我的设置有什么问题?当我在 WebMatrix 中创建一个新站点并将我的文件复制到其中时,它一切正常,即使没有在web.config. 我能看到的唯一区别是binWebMatrix 生成的项目中存在文件夹。

所以问题是,我是否也需要将该bin文件夹作为源文件的一部分?我真的不觉得只需要在我的 index.cshtml 中添加一个动态行就需要将 1.5MB 的二进制文件检查到 Git 中,但也许就是这样?

感谢您确认这一点或向我展示一些更好的方法。

4

1 回答 1

1

ASP.NET WebPages 需要 UTF-8 页面上的 BOM,否则它不会将页面读取为 UTF-8。如果它不这样做,它就不会输出一个 UTF-8 编码的页面。

这不是 ASP.NET 问题,而是网页问题。WebPages 处理真实页面,它不会解释 html 以知道它应该是 UTF-8。它知道的唯一方法是查找 BOM。

于 2012-09-29T23:02:53.390 回答