ASP.NET MVC命名空间时引起错误的解决方法

Karima ·
更新时间:2024-09-20
· 857 次阅读

使用VS2012新建了一个Asp.net mvc5的项目,并把项目的命名空间名称更改了(Src更改为UXXXXX),然后就导致了以下错误

刚开始以后是项目的属性中的命名空间没有更改过来的问题,但我在重命名时更改的是全局的名称,而且所有文件的命名空间都已经更改过来了


稍候思考了一下并在解决方案里搜索了"Src"除了页面中引用的js脚本外还发现Views/web.config文件中包含"Src"

Asp.net MVC自动生成的代码如下,可以看到自动生成的代码将Views/web.config里引入的命名空间合并到了View页面代码中个人猜想这样做的原因是在views/web.config里设置的命名空间,就可以在View模板中直接使用配置文件中设置的命名空间下的类型


做了个试验(确保Views/web.config里没有引用System.Text命名空间):

将View中的的内容全部清空(包含_ViewStart.html和_Layout.cshtml等)

将views/Login.schtml内容清空并写入以下内容,然后重新生成并在浏览器里查看,就会出现以下错误(原因是StringBuilder没有引用命名空间System.Text)

解决办法有两种

在Views/web.config中导入System.Text(你需要的命名空间)在视图模板中使用完整的类型名(System.Text.StringBuilder)来使用StringBuilder

@{ DateTime d= DateTime.Now; //必须在Views/web.config 配置文件中设置引用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(); //在视图模板中直接使用完整的类型,不需要在配置文件中设置 //VS虽然有自动完成功能,但同样在编译时也不会对类型时行检查 //同样只有在运行时才会报错 System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("1,"); sb.Append("2,"); } @d<br /> @sb.ToString()

以上就是为大家提供的解决ASP.NET MVC 重命名(命名空间)而导致错误的方法,希望对大家的学习有所帮助。

您可能感兴趣的文章:详解C++ 动态内存分配与命名空间C++编程中的命名空间基本知识讲解C++命名空间实例解析PHP命名空间namespace定义及导入use用法详解System.Web中不存在类型或命名空间名称script 找不到System.Web.Extensions.dll引用PHP命名空间namespace的定义方法详解浅谈几种常见语言的命名空间(Namespace)thinkphp autoload 命名空间自定义 namespacenode.js中使用socket.io制作命名空间C++命名空间namespace的介绍与使用



net asp.net mvc ASP.NET 方法 MVC ASP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章