ASP.NET MVC2 Web项目中公用类库的问题
2013-11-23 17:43
232 查看
ASP.NET WEB窗体 网站中,加入公用类文件的话,系统会很自动并殷勤的问你,说要不要把它存放在文件夹 App_Code 里。一旦加入,全站都可以很方便地加以使用,一点问题没有。
这种习以为常的方式,在MVC2模式下,却不存在。在MVC2(其他版本的我尚未知道)里,加入一个类文件,系统一生不吭,不会提醒你要将这么个东西放到app_code里,并且在添加ASP.NET文件的菜单命令里,只有App_Data,App_GlobalResources,App_Browsers几个,并没有所谓App_Code。
没有不要紧,我们可以自己添加这个文件夹。
但是运行的时候,问题就出来了。
比如说,我们要在控制器传递一个变量给视图,可以采用
ViewData[key]的方式。这个key,必须在控制器,视图里保持一致,否则会搞错;万一要修改,就要两个地方都改一遍。傻瓜都能想到,可以将这个key,定义在公用类里,大家都引用即可。
现在
/app_code/common.cs有代码如下
//控制器
//视图
结果一运行就出问题了:
究其原因,应该是MVC项目编译之后,这个类存在于统一的项目dll里,然后代码这里又有源代码,因此冲突了。
解决的办法是将公用的类放在项目外,编译成独立的DLL,然后项目加以引用,问题解决。
==============================================================
这似乎是App_Code这个文件夹名字导致的问题。只要改成别的名字,就可以?
这种习以为常的方式,在MVC2模式下,却不存在。在MVC2(其他版本的我尚未知道)里,加入一个类文件,系统一生不吭,不会提醒你要将这么个东西放到app_code里,并且在添加ASP.NET文件的菜单命令里,只有App_Data,App_GlobalResources,App_Browsers几个,并没有所谓App_Code。
没有不要紧,我们可以自己添加这个文件夹。
但是运行的时候,问题就出来了。
比如说,我们要在控制器传递一个变量给视图,可以采用
ViewData[key]的方式。这个key,必须在控制器,视图里保持一致,否则会搞错;万一要修改,就要两个地方都改一遍。傻瓜都能想到,可以将这个key,定义在公用类里,大家都引用即可。
现在
/app_code/common.cs有代码如下
namespace mvc.App_Code { public class Common { public static readonly string KeyTeacherList = "TeacherList"; } }
//控制器
public ActionResult Teacher() { College.Bll.Teacher bll = new College.Bll.Teacher(); DataTable dt = bll.GetData(); ViewData[common.KeyTeacherList] = dt; return View(dt); }
//视图
结果一运行就出问题了:
究其原因,应该是MVC项目编译之后,这个类存在于统一的项目dll里,然后代码这里又有源代码,因此冲突了。
解决的办法是将公用的类放在项目外,编译成独立的DLL,然后项目加以引用,问题解决。
==============================================================
这似乎是App_Code这个文件夹名字导致的问题。只要改成别的名字,就可以?
相关文章推荐
- ASP.NET MVC2 Web项目中公用类库的问题
- web项目中的路径问题
- 关于Windows Server 服务器 安装tomcat部署Java Web 项目的问题
- 使用idea创建web项目后无法创建Java文件夹的问题的解决办法
- 解决创建Maven Web项目的时候卡在installing dynamic web module facet的问题
- 关于web项目中的程序调试(为了记住自己遇到的问题,慢慢增加)
- 创建Spring-Mybatis web项目,解决IDEA下找不到XXXmapper.xml文件的问题
- 64位系统web项目导出excel问题分析及解决方法汇总
- 解决webpack vue 项目打包生成的文件,资源文件均404问题
- JavaWeb 项目安全问题及其解决方案
- 全面解决.NET下Web项目打开失败的问题(也可用于.NET下Web项目的迁移)
- MAVEN构建Web项目无法解析el表达式问题
- 关于java web项目中数据库连接池无法创建的问题
- eclipse导入myeclipse的web项目没法识别问题解决
- web项目中文存储问题
- Myeclipse下web项目改名,tomcat下不变的问题
- web项目部署问题
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- 遇到问题---java---git下载的maven项目web用tomcat发布时不带子项目