我正在创建一个非常简单的网站,最初只是一堆HTML / CSS文件。然后我需要添加一些服务器端逻辑,所以我认为我会使用ASP.NET网页,因为它们听起来像是一个合适的解决方案。
所以我将index.html
更改为index.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
中指定网页版本,一切正常。我能看到的唯一区别是WebMatrix生成的项目中存在bin
文件夹。
所以问题是,我是否需要将bin
文件夹作为源文件的一部分?我真的不想将1.5MB的二进制文件检入Git中,只需要在我的index.cshtml中添加一个动态行,但可能就是这样吗?
感谢您确认这一点或向我展示更好的方式。
答案 0 :(得分:1)
ASP.NET WebPages在UTF-8页面上需要BOM,否则它不会将页面读作UTF-8。如果不这样做,它将不会输出UTF-8编码页面。
这不是ASP.NET问题,而是WebPages问题。 WebPages处理真实页面,它不解释html知道它应该是UTF-8。它知道的唯一方法是寻找BOM。