前天从堂子里看到了ProMesh.net这个MVC框架,感觉不错。
所以下载下来学习一下,下载ProMesh-19618.zip

所有项目中引用了Activa.ProMesh.Dll,请大家自行引用

开始学习(之前已经把网站提供的Demo打开看了一下),准备自己使用框架搭建一个网站
第一步,建立ProMeshStudy工程,添加ProMeshStudy网站项目和ProMeshMyClass类库项目。网站项目作为表示层,包含Template、Css、Js、Image等;类库项目作为相对应的业务逻辑,包含Application、Controller等。

第二步,在ProMeshMyClass中添加一个静态类,在此类中添加静态方法Init();在系统启动时,ProMesh会根据设定调用此类的Init()方法来对系统进行初始化操作。比如默认的页面扩展名是".ashx",我们可以修改成".aspx";增加AjaxProvider等。
这里我使用的类是:
 1     public static class MyApplications
 2    {
 3        public static void Init()
 4        {
 9            WebAppConfig.PageExtension = "aspx";
10        }

11    }

第三步,在网站项目中配置ProMesh。打开web.config在AppSettings中添加Application,指向你自己添加的静态类
<add key="ProMesh.ApplicationClass" value="ProMeshMyClass.MyApplications,ProMeshMyClass"/>
添加HttpModule
<add name="ProMeshModule" type="Activa.ProMesh.HttpModule,Activa.ProMesh"/>
添加HttpHandler
<add verb="*" path="*.aspx" type="Activa.ProMesh.PageHandler,Activa.ProMesh"/>

第四步,添加基本模板
默认模板地址是templates目录,在网站项目中添加此目录。默认模板页面是master.htm,请添加到模板目录下,内容如下:
Master模板页面

第五步,添加controller
请在ProMeshMyClass项目中添加一个新类,例如index,此类继承自Activa.ProMesh.Controller类。给此类添加一个void Run()方法内容增加ViewData["Hello"] = "Hello World!";类如下:
Controller类

第六步,添加对应controller的模板页面,在templates中添加与你刚刚增加类同名的htm文件,这里是index.htm
内容如下:
$[Hello]
[]中间是你刚刚ViewData的Key

第七步:F5

◎◎“。。发生错误了,未将对象引用到实例,PageHandler.cs的_internalHandler.ProcessRequest(ProMeshHttpContext.Current);这行

我跟踪了整个过程后,发现了几个问题点。不知道是我配置的问题还是应该修改过了。修改地方如下:
WebAppConfig.cs 此行private static string _pageExtension         = ".ashx";//edit   原来是"ashx";
                          此行else if (!value.StartsWith("."))//edit 原来是else if(!_pageExtension.StartsWith("."))

修改完毕,运行OK。:)