内容简介:ASP.NET MVC命名空间时引起错误的解决方法
使用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 重命名(命名空间)而导致错误的方法,希望对大家的学习有所帮助。
以上所述就是小编给大家介绍的《ASP.NET MVC命名空间时引起错误的解决方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
网络是怎样连接的
[日]户根勤 / 周自恒 / 人民邮电出版社 / 2017-1-1 / CNY 49.00
本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。 本书图文并茂,通俗易懂,非常适合计算机、网络爱好者及相关从......一起来看看 《网络是怎样连接的》 这本书的介绍吧!