您的位置:首页 > 编程语言 > ASP

【小技巧】自定义asp.net mvc的WebFormViewEngine修改默认的目录结构

2014-01-22 11:13 519 查看
先看一下我的解决方案的目录结构吧~~~



一:先把Controller程序提取出来

默认的情况是所有的****Controller.cs文件都会放在Web程序集下的一个叫Controllers的文件夹下

这样感觉有点不爽(你懂的...)

我们决定把所有的Controller程序放到一个自定义的应用程序集中去(上图中的mrlh.Admin.Controllers)

先把web程序集下的Global.asax.cs文件删掉

然后把Global.asax的标记代码改为如下:

这样应用程序启动时就会到我们自定义的应用程序集去执行相关的操作了

mrlh.Admin.Controllers.App.MvcApplication的相关代码如下

这样做之后

所有的Controller程序就不用集中写到web程序集中去了,

就可以写在mrlh.Admin.Controllers这个程序集中了

 

二:改变View文件夹的目录结构

默认的情况是所有的****.aspx文件都放在web程序集中的Views目录下

这样感觉也有点不爽(你懂的...)

如果想改变aspx文件的目录结构,就必须自定义WebFormViewEngine了

细心的读者会看到在上面的代码中Application_Start方法里前面三句话

这就是把自定义的 WebFormViewEngine添加到应用程序中去的方法

MvcViewEngine的代码如下

这样做之后类似这样的请求
http://localhost:12232/YuanGong/YuanGong
都会在web程序集中找到YuanGongView/YuanGong.aspx

然后再呈现给“观众”

注意:

  这里不能试图把每个文件夹名字中后面的"View"字样去掉,

  因为ASP.NET MVC如果发现服务器的物理路径上存在相应的文件,将直接输出了

  也就是请求是这样的http://localhost:12232/YuanGong/YuanGong

  发现服务web目录下对应有此文件YuanGong/YuanGong.aspx

  将直接输出

三:自定义目录结构的好处

我之所以这样做一个是为了感官上的舒服,毕竟自己的程序跟自己的媳妇一样

不但要从触觉上考虑,还要从视觉上考虑

另外还可以把多个web程序集的controller程序放在同一个程序集中方便代码的重用

(忽然觉得好像面向服务编程)

其三目录结构改变了,也方便权限的控制

 

 

demo:http://files.cnblogs.com/liulun/MRLH.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: