使用VS2012新建了一個(gè)Asp.net mvc5的項(xiàng)目,并把項(xiàng)目的命名空間名稱更改了(Src更改為UXXXXX),然后就導(dǎo)致了以下錯(cuò)誤
![](/d/20211017/7c8ef6c028a14516c001f47d5aca66d9.gif)
剛開始以后是項(xiàng)目的屬性中的命名空間沒有更改過來(lái)的問題,但我在重命名時(shí)更改的是全局的名稱,而且所有文件的命名空間都已經(jīng)更改過來(lái)了
![](/d/20211017/983e7f78e1fe0fccacba9612f3576266.gif)
![](/d/20211017/b976111b0653bb521cfcfc2c453ef653.gif)
稍候思考了一下并在解決方案里搜索了"Src"除了頁(yè)面中引用的js腳本外還發(fā)現(xiàn)Views/web.config文件中包含"Src"
![](/d/20211017/84b141316ca71dcdae16937fcc844bc5.gif)
![](/d/20211017/7a1e98d2e8b242d828f31ef0793049ec.gif)
Asp.net MVC自動(dòng)生成的代碼如下,可以看到自動(dòng)生成的代碼將Views/web.config里引入的命名空間合并到了View頁(yè)面代碼中個(gè)人猜想這樣做的原因是在views/web.config里設(shè)置的命名空間,就可以在View模板中直接使用配置文件中設(shè)置的命名空間下的類型
![](/d/20211017/7f64153e13eb76eb18df43f4f03c86d7.gif)
做了個(gè)試驗(yàn)(確保Views/web.config里沒有引用System.Text命名空間):
將View中的的內(nèi)容全部清空(包含_ViewStart.html和_Layout.cshtml等)
將views/Login.schtml內(nèi)容清空并寫入以下內(nèi)容,然后重新生成并在瀏覽器里查看,就會(huì)出現(xiàn)以下錯(cuò)誤(原因是StringBuilder沒有引用命名空間System.Text)
![](/d/20211017/e142f6f886083f4f46934b86c121e525.gif)
![](/d/20211017/175f2ee751f7ba81bdd5e464474246d8.gif)
解決辦法有兩種
在Views/web.config中導(dǎo)入System.Text(你需要的命名空間)在視圖模板中使用完整的類型名(System.Text.StringBuilder)來(lái)使用StringBuilder
@{
DateTime d= DateTime.Now;
//必須在Views/web.config 配置文件中設(shè)置引用System.Text命名空間否則將報(bào)錯(cuò)
// system.web.webPages.razor>
// pages pageBaseType="System.Web.Mvc.WebViewPage">
// namespaces>
// !--在全局視圖模板中引用命名空間,在模板就可以直接使用該空間下的類型-->
// add namespace="System.Text" />
// /namespaces>
// /pages>
// /system.web.webPages.razor>
//在配置文件中引用命名空間后,視圖模板中沒有自動(dòng)完成功能, VS在編譯時(shí)也不會(huì)檢查該類型是否存在
//如果類型不存在或輸入錯(cuò)誤,只有在運(yùn)行時(shí)才會(huì)報(bào)錯(cuò),
StringBuilder sb = new StringBuilder();
//在視圖模板中直接使用完整的類型,不需要在配置文件中設(shè)置
//VS雖然有自動(dòng)完成功能,但同樣在編譯時(shí)也不會(huì)對(duì)類型時(shí)行檢查
//同樣只有在運(yùn)行時(shí)才會(huì)報(bào)錯(cuò)
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("1,");
sb.Append("2,");
}
@dbr />
@sb.ToString()
以上就是為大家提供的解決ASP.NET MVC 重命名(命名空間)而導(dǎo)致錯(cuò)誤的方法,希望對(duì)大家的學(xué)習(xí)有所幫助。
您可能感興趣的文章:- 詳解C++ 動(dòng)態(tài)內(nèi)存分配與命名空間
- C++編程中的命名空間基本知識(shí)講解
- C++命名空間實(shí)例解析
- PHP命名空間namespace定義及導(dǎo)入use用法詳解
- System.Web中不存在類型或命名空間名稱script 找不到System.Web.Extensions.dll引用
- PHP命名空間namespace的定義方法詳解
- 淺談幾種常見語(yǔ)言的命名空間(Namespace)
- thinkphp autoload 命名空間自定義 namespace
- node.js中使用socket.io制作命名空間
- C++命名空間namespace的介紹與使用