词条统计
浏览次数:16687 次
编辑次数:4次 历史版本
最近更新:2013/6/20
创建者:掷鸡蛋者


1、建立 controller 文件夹
2、建立 ArticleController.cs 类



说明:ArticleController必须继承自ControllerBase(这个类在 wojilu.Web.Mvc 命名空间下)

3、依次在控制器中添加CRUD(增、删、改、查)(create/delete/update/read)方法


其中几段代码的说明:

1、target(Create)不是执行Create方法,其实等效于set("ActionLink", to(Create) ),也就是设置当前form的提交网址;

2、run(Add)也不是直接执行Add。如果上下文报错ctx.HasErrors,那么run(Add)方法会在Add这个页面的form上面显示红色的报错信息。
target(Create) 和 run(Add),有一个共同特点:参数都是某个方法的名称。凡是这种类型,都不是直接执行这个方法,这个方法是不会执行的。这里只是一个“委托”,通过这种特殊的形式,获取强类型的方法名称,以方便框架内部进一步处理。如果不清楚,可以进一步搜索“委托”的概念。如果觉得理解这个有些麻烦,可以跳过,只要记得,这些方法根本就不会被执行就可以了。

3、ctx.PostValue等效于将POST的各项值逐一赋予模型对象的各个属性,所以最终得到的不是某个特定的int或string的值,而是一个模型对象。优点是自动化处理,避免了手工逐个赋值的麻烦。

4、bindList表示“绑定列表”。它的四个参数含义依次是:
    1)listname表示视图文件中,循环列表的名字(也就是BEGIN和END中的名字);
    2)lbl表示变量的前缀,比如 #{post.Title}中的post;
    3)objList表示你从数据库中查询的对象;
    4)最后一个参数表示你自定义的其他绑定方法。



再增添一个网站默认控制器MainController(这个以后也可以修改成其他名称的):


默认控制器相当于网站的首页。可以看到,上面的代码将从首页跳转到 Article控制器的Index方法。

【配置控制器和领域模型】

还要将控制器生成的程序集放到配置中。依次打开 /framework/config/ 目录下的 mvc.config 文件和 orm.config 文件




如果要使用sqlserver数据库,请参考文章:http://www.wojilu.com/Forum1/Topic/67 


另外,因为所有控制器都纳入了IOC容器,还要将控制器程序集加入web.config的配置:

这个配置的意思是说,你所有用到的程序集,都要在这里罗列一下,否则IOC容器是无法管理的。
如果你用到了一个程序集wojilu.cms,格式就是:

<add key="InjectAssembly" value="wojilu.cms" />


如果你用到了两个程序集(只是打比方,不是这个项目真的用到了),格式就是:
<add key="InjectAssembly" value="wojilu.cms, wojilu.service" />

——多个程序集之间用英文逗号隔开,程序集名称不需要.dll后缀名。


网站启动的时候,框架会根据这个配置文件,到网站根目录的/bin目录下查找程序集并试图加载。
比如针对配置
<add key="InjectAssembly" value="wojilu.cms" /> ,网站就尝试加载 /bin/wojilu.cms.dll 文件;
又比如针对配置
<add key="InjectAssembly" value="wojilu.cms, wojilu.service" /> ,网站就尝试加载 /bin/wojilu.cms.dll 和 /bin/wojilu.service.dll 文件。


【常见错误分析】

1)出现 “System.IO.FileNotFoundException: 未能加载文件或程序集” 错误
错误原因:在bin 目录下没有你罗列的程序集。为什么在bin目录下没有呢?请根据教程《第一步:准备工作》仔细检查是不是添加了相关程序集的引用。