我可以在不部署“bin”文件夹的情况下使用ASP.NET网页吗?

时间:2012-09-29 22:45:44

标签: asp.net asp.net-webpages

我正在创建一个非常简单的网站,最初只是一堆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中添加一个动态行,但可能就是这样吗?

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

1 个答案:

答案 0 :(得分:1)

ASP.NET WebPages在UTF-8页面上需要BOM,否则它不会将页面读作UTF-8。如果不这样做,它将不会输出UTF-8编码页面。

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