为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能(二)

上一篇《为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能(一)》 中讲到如何 分离Controllers和Views项目,并且为Controllers项目添加MVC RC的“脚手架”,可惜“脚手架”的功 能保留的过于完整,以至于自动创建和察看View页面都会在当前项目中进行,除非你心甘情愿每次创建完 成后手动将文件转移到Views(Web)项目,否则这个“脚手架”的意义几乎就失去了。并且,及时转移了 .aspx之类的View文件,那么查看还是在当前项目中进行,这可怎么办呢?本文将为此创造一个“一石二 鸟”的方法,可以同时解决View页面新增和查看的问题。 

View查看

由于没功夫研究这个“脚手架”内部的机制(如果有朋友能够实现hack的话也就不用这么麻烦了,呵 呵),所以想到了一个变通的方法:能不能在Controller对应的地方加上一些“快捷方式”,然后当查看 的时候直接查找源文件呢?经过了一些尝试,发现直接创快捷方式文件(.lnk)是行不通的。

于是又打起了MyMvc.Controllers.csproj的主意。经过一些测试研究,发现. Csproj文件支持一个 <Link>的标签,可以在VS程序中起到“快捷方式”的效果(具体如何设置节点在本文后面提供的解 决方案程序和下载代码中可见,这里不再详述)。

经过一系列测试,这些被Link的文件不会被编译到MyMvc.Controllers.Dll中,OK,View的问题就此告 一段落,剩下的工作由统一的解决方案来完成。

View新增

既然MyMvc.Controllers中的View都是没有实际意义的快捷方式,那么新增的文件显然也不能让他留在 MyMvc.Controllers项目中,于是想到了“乾坤大挪移”——把新建的View自动移动到MyMvc.Web项目中, 并且在MyMvc.Controllers.csproj中将对应的文件编程一个“快捷方式”。

最终解决方案——MvcScaffoldTool

MvcScaffoldTool是本人原创的一个用于解决之前提到的脚手架创建、查看文件路径的问题,同样适用 于其它一些类型项目的其他地方。

既然要从外部入手,那么最直接、最自动的方法当然是写一个程序,用于自动“监控” MyMvc.Controllers中的状态,当其发生变化的时候自动转移文件并且处理对应的. Csproj文件。

由于很少做WinForm,所以粗制滥造了一个:

时间: 2024-12-22 13:36:28

为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能(二)的相关文章

为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能(一)

连续忙了好几个月,好久没有写东西了,最近稍微有点空,空闲的时候回到了对ASP.NET MVC RC(以 下简称MVC RC)的研究上来.MVC RC的"脚手架(Scaffold)"功能可以说为MVC RC的开发如虎添翼,不 过应用到真实的开发环境中似乎存在一些遗憾的地方:很多时候我们并不希望把Models.Views和 Controllers放在同一个项目里面,而是把它们分离到不同的项目,然后由一个项目(比如Views)统一引 用其他所有的项目程序集.但是这样做了以后,Controll

ASP.NET MVC RC 升级要注意的几点

ASP.NET MVC RC出来了,增加和更改的内容可以参考升级文档http://go.microsoft.com/fwlink/?LinkID=137661&clcid=0x409以及博客http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx不过它的升级文档也没有面面具到,有很多问题,需要自己去升级一下程序才能发现问题,我升级了一下程序,发现以下

ASP.NET MVC RC重新发布,更新部分BUG

ASP.NET MVC 在28号发布了RC版,但之后却被提交了不少BUG,于是在30号重新发布了这一版(注意卸载原版本后再安装) 下载: http://www.microsoft.com/downloads/details.aspx?FamilyID=f4e4ee26-4bc5-41ed-80c9-261336b2a5b6&displaylang=en   原文: http://haacked.com/archive/2009/01/30/aspnetmvc-refresh.aspx 该文对未解

ASP.NET MVC 5 - 给电影表和模型添加新字段

原文:ASP.NET MVC 5 - 给电影表和模型添加新字段 在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的.如果他们不是同步的,Entity Framework将抛出一个错误.这非常方便的在

ASP.NET MVC RC 2 发布

今天发布了ASP.NET MVC RC2,希望不要像上一个版本一样有BUG之后重新再发布 下载: http://www.asp.net/mvc/ 源码: http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24142#ReleaseFiles  

ASP.NET MVC 音乐商店 - 1 创建项目

转自http://www.cnblogs.com/haogj/archive/2011/11/09/2241817.html 我们的项目从在 Visual Studio 中的文件菜单中选择"新建",选择"项目"开始.   然后,选择 C# 中的 Web 模板组,在右边的项目模板中选择 ASP.NET MVC3 Web 应用程序,在项目的名称输入框中,输入 MvcMusicStore ,点击确定.   这时,你会到第二个对话框,允许我们设置这个项目关于 MVC 的一些

ASP.NET MVC加载用户控件后如何获取其内控件值或赋值

有网友看了这篇<ASP.NET MVC加载ASCX之后,并为之赋值>http://www.cnblogs.com/insus/p/3643254.html 之后,问及Insus.NET,不想在控件制器内进行赋值,而是想在视图中使用jQuery来获取用户控件内的控件值或是为它们赋值.那需要怎样来做呢? 下面Insus.NET花上少少时间,做个简单的例子,演示与分享实现的方法. 实现之前,先修改一下AscxUtility.cs这个类中的 public static HtmlString Rende

记一次ASP.NET MVC性能优化(实际项目中)

前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现,无法确定在网站中是否也同样会出现. 卡顿问题 请求方式 项目属于移动端,在手机上查看某一列表时并进行向下滑动时经常性卡顿问题,滚动的插件采用的是iscroll,当然怀疑是不是这个插件问题,但是很快就排除了这个问题,在其他页面未出现这个问题,后来接着想因为在脚本中进行Ajax请求超时时间设置为30秒,

ASP.NET MVC之路由特性以及母版页呈现方式(十二)

前言 这一节我们开始讲讲基础的东西也就是如题目所言,个人觉得当学习或者利用MVC时,必须得知道最新迭代版本新增了什么,至少得知道MVC 3.MVC 4或者MVC 5有什么区别,而不至于当利用到低版本时,出现某些特性就懵逼以至于认为是代码出了问题,这一点是很明确需要我们去了解. 话题 在MVC 5之前都是基于约定的路由,如下: routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default", url: "{con