ASP.NET MVC命名空間時(shí)引起錯誤的解決方法
使用VS2012新建了一個Asp.net mvc5的項(xiàng)目,并把項(xiàng)目的命名空間名稱更改了(Src更改為UXXXXX),然后就導(dǎo)致了以下錯誤

剛開始以后是項(xiàng)目的屬性中的命名空間沒有更改過來的問題,但我在重命名時(shí)更改的是全局的名稱,而且所有文件的命名空間都已經(jīng)更改過來了


稍候思考了一下并在解決方案里搜索了"Src"除了頁面中引用的js腳本外還發(fā)現(xiàn)Views/web.config文件中包含"Src"


Asp.net MVC自動生成的代碼如下,可以看到自動生成的代碼將Views/web.config里引入的命名空間合并到了View頁面代碼中個人猜想這樣做的原因是在views/web.config里設(shè)置的命名空間,就可以在View模板中直接使用配置文件中設(shè)置的命名空間下的類型

做了個試驗(yàn)(確保Views/web.config里沒有引用System.Text命名空間):
將View中的的內(nèi)容全部清空(包含_ViewStart.html和_Layout.cshtml等)
將views/Login.schtml內(nèi)容清空并寫入以下內(nèi)容,然后重新生成并在瀏覽器里查看,就會出現(xiàn)以下錯誤(原因是StringBuilder沒有引用命名空間System.Text)


解決辦法有兩種
在Views/web.config中導(dǎo)入System.Text(你需要的命名空間)在視圖模板中使用完整的類型名(System.Text.StringBuilder)來使用StringBuilder
@{
DateTime d= DateTime.Now;
//必須在Views/web.config 配置文件中設(shè)置引用System.Text命名空間否則將報(bào)錯
// <system.web.webPages.razor>
// <pages pageBaseType="System.Web.Mvc.WebViewPage">
// <namespaces>
// <!--在全局視圖模板中引用命名空間,在模板就可以直接使用該空間下的類型-->
// <add namespace="System.Text" />
// </namespaces>
// </pages>
// </system.web.webPages.razor>
//在配置文件中引用命名空間后,視圖模板中沒有自動完成功能, VS在編譯時(shí)也不會檢查該類型是否存在
//如果類型不存在或輸入錯誤,只有在運(yùn)行時(shí)才會報(bào)錯,
StringBuilder sb = new StringBuilder();
//在視圖模板中直接使用完整的類型,不需要在配置文件中設(shè)置
//VS雖然有自動完成功能,但同樣在編譯時(shí)也不會對類型時(shí)行檢查
//同樣只有在運(yùn)行時(shí)才會報(bào)錯
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("1,");
sb.Append("2,");
}
@d<br />
@sb.ToString()
以上就是為大家提供的解決ASP.NET MVC 重命名(命名空間)而導(dǎo)致錯誤的方法,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
詳解一款開源免費(fèi)的.NET文檔操作組件DocX(.NET組件介紹之一)
本篇文章主要是介紹了一款開源免費(fèi)的.NET文檔操作組件DocX,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
asp.net中Response.Redirect與Server.Transfer的區(qū)別分析
一般來說如果需要在兩個頁面間共享數(shù)據(jù),而且數(shù)據(jù)量比較大的時(shí)候,用transfer會比較合適,在第二個頁面中可以直接使用前一頁面的數(shù)據(jù)。2010-10-10
asp.net 頁面逐步呈現(xiàn)的方法總結(jié)
分塊編碼 ( chunked encoding )就是讓 response 分塊編碼進(jìn)行傳輸。response 分塊編碼,可以先傳輸一部分不需要處理的 html 代碼到客戶端,等其他耗時(shí)代碼執(zhí)行完畢后再傳輸另外的 html 代碼。2010-06-06
.NET Core對象池的應(yīng)用:擴(kuò)展篇
本文主要講解.NET Core對象池的池化集合、池化StringBuilder、ArrayPool<T>以及MemoryPool<T>,需要了解的小伙伴可以多學(xué)習(xí)這篇文章,相信可以幫助到你2021-09-09
ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流
這篇文章介紹了ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
uni-app結(jié)合.NET?7實(shí)現(xiàn)微信小程序訂閱消息推送
本文主要介紹了uni-app結(jié)合.NET?7實(shí)現(xiàn)微信小程序訂閱消息推送,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

