ASP.NET MVC命名空間時引起錯誤的解決方法
使用VS2012新建了一個Asp.net mvc5的項目,并把項目的命名空間名稱更改了(Src更改為UXXXXX),然后就導(dǎo)致了以下錯誤
剛開始以后是項目的屬性中的命名空間沒有更改過來的問題,但我在重命名時更改的是全局的名稱,而且所有文件的命名空間都已經(jīng)更改過來了
稍候思考了一下并在解決方案里搜索了"Src"除了頁面中引用的js腳本外還發(fā)現(xiàn)Views/web.config文件中包含"Src"
Asp.net MVC自動生成的代碼如下,可以看到自動生成的代碼將Views/web.config里引入的命名空間合并到了View頁面代碼中個人猜想這樣做的原因是在views/web.config里設(shè)置的命名空間,就可以在View模板中直接使用配置文件中設(shè)置的命名空間下的類型
做了個試驗(確保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命名空間否則將報錯 // <system.web.webPages.razor> // <pages pageBaseType="System.Web.Mvc.WebViewPage"> // <namespaces> // <!--在全局視圖模板中引用命名空間,在模板就可以直接使用該空間下的類型--> // <add namespace="System.Text" /> // </namespaces> // </pages> // </system.web.webPages.razor> //在配置文件中引用命名空間后,視圖模板中沒有自動完成功能, VS在編譯時也不會檢查該類型是否存在 //如果類型不存在或輸入錯誤,只有在運行時才會報錯, StringBuilder sb = new StringBuilder(); //在視圖模板中直接使用完整的類型,不需要在配置文件中設(shè)置 //VS雖然有自動完成功能,但同樣在編譯時也不會對類型時行檢查 //同樣只有在運行時才會報錯 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)文章
asp.net下數(shù)據(jù)庫操作優(yōu)化一例
數(shù)據(jù)庫升級,需要對幾個表進行一些數(shù)據(jù)轉(zhuǎn)換,具體是這樣:針對每一個 Item,從 orders 表里查出 Shop_Id,并把此 Id 賦值給 items 和 skus 中的 Shop_Id。2010-11-11在.NET程序崩潰時自動創(chuàng)建Dump的思路詳解
本文主要是介紹了如何在dotNet程序崩潰時自動創(chuàng)建Dump,Windows上的方法對于.NET Freamwork和.NET Core版本都適用,.NET Core全平臺版本的話需要注意環(huán)境變量支持的.NET版本,對.net程序崩潰自動創(chuàng)建Dump相關(guān)知識感興趣的朋友一起看看吧2022-11-11.NET微服務(wù)架構(gòu)CI/CD鏡像自動分發(fā)
這篇文章介紹了.NET微服務(wù)架構(gòu)CI/CD實現(xiàn)鏡像自動分發(fā)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路
這篇文章主要介紹了ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路,需要的朋友可以參考下2015-12-12asp.net中Request.QueryString與Request.Param的區(qū)別分析
看起來Request.Params更好一些,但是還是不明白既然Param包括了所有,為什么還要有QueryString呢2011-10-10