欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-14 22:30:39
使用vs2012新建了一个asp.net mvc5的项目,并把项目的命名空间名称更改了(src更改为uxxxxx),然后就导致了以下错误 刚开始以后是项目的属性中的命...

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

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

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

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

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

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

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

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

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

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

做了个试验(确保views/web.config里没有引用system.text命名空间):

将view中的的内容全部清空(包含_viewstart.html和_layout.cshtml等)

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

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

解决办法有两种

在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 重命名(命名空间)而导致错误的方法,希望对大家的学习有所帮助。