1. 程式人生 > >Visual Studio Community 2017中修改ASP.NET MVC專案中類名稱空間的一點注意事項

Visual Studio Community 2017中修改ASP.NET MVC專案中類名稱空間的一點注意事項

筆者使用Visual Studio Community 2017建立一個ASP.NET MVC 5的專案,系統預設建立了一個HomeController類,此時編譯執行正常。在修改HomeController類的名稱空間名字後,將自動修改全專案的類的名稱空間名,編譯正常,但執行報錯,錯誤指出index.cshtml使用了不存在的名稱空間名(即修改前的名稱空間名),見下圖:


使用原名稱空間名sfsjAnalyzerOnline在全專案的檔案中查詢發現,在Views資料夾下的web.config(這個是ASP.NET MVC 5新增加的)中有一個項使用了原名稱空間名,而不是新的名稱空間名sfsj。見如下示例:

<?xml version="1.0"?>

<configuration>
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="sfsjAnalyzerOnline" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</configuration>
修改裡頭的<add namespace=“sfsjAnalyzerOnline" />為新的名稱空間名如:<add namespace="sfsj" />即執行正常。

事實上,去掉上述配置檔案中的<system.web.webPages.razor>節,網站系統執行正常。