脱离Visual Studio,只用文本编辑器、.NET Framework、IIS Express创建ASP.NET MVC应用时,需要精简~/View目录下web.config文件内容,之前创建的asp.net mvc hellow world应用一切正常,在清理web.config文件后,出现如下错误:

The view must derive from WebViewPage, or WebViewPage<TModel>. (The view at ‘~/Views/home/index.cshtml’ must derive from WebViewPage, or WebViewPage<TModel>.)

详细的解决方法,请参考这里:https://blogs.msdn.microsoft.com/gaurav/2014/01/14/the-view-must-derive-from-webviewpage-or-webviewpagetmodel-the-view-at-viewshomeindex-cshtml-must-derive-from-webviewpage-or-webviewpagetmodel/

Web应用根目录下的Web.config文件可以没有,只要有Global.asax文件就行,但为了解析MVC中cshtml格式文件,一种是使每个页面继承自“@inherits System.Web.Mvc.WebViewPage”,_ViewStart.cshtml文件继承自@inherits System.Web.WebPages.StartPage;这样每个页面都写也挺麻烦,第二种方法就是增加~/View目录下的web.config,最简形式作者做了说明,这里拷贝一份,以备后用:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, 
                  System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, 
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor,
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
  
  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages>
  </system.web.webPages.razor>
</configuration>

备注:上文中创建的最简但的ASP.NET MVC应用helloworld,只在view中打印一行文本,以验证MVC中Controller和View运行是否正确。