当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » C#  » 编程基础
分享到: 
收藏 +0
2
eLiteWeb虽然也是用MVC,不过意义有的些不同。是Model-View-Command.
要显示一个简单的页面,非常简单,
两步:
1创建一个后台处理命令,我给出的例子是Index,大家再熟悉不过的,调用request.Output.Display(View, Model), 给定View的名称,会自动到Skight.eLiteWeb.Sample.Web.UI项目的Views文件夹去寻找。
2建立Url和之前创建命令的映射关系(Routing). 在Skight.eLiteWeb.Application.Startup.RoutesRegistration:增加 routes.add(factory.match<Index>("Index.do")

最后,在浏览器输入 http://localhost:xxxx/Index.do

标签: eLiteWeb

代码片段(4) [全屏查看所有代码]

1. [代码]注册映射Url到后台处理的Command     跳至 [1] [2] [3] [4] [全屏预览]

namespace Skight.eLiteWeb.Application.Startup
{
    public class RoutesRegistration:StartupCommand
    {
        private Registration registration;

        public RoutesRegistration(Registration registration)
        {
            this.registration = registration;
        }

        public void run()
        {
            var routes = Container.Current.get_a<RoutingTable>();
            var factory = new CommandFactory();
            routes.add(factory.match<Home>("Home.do"));
            routes.add(factory.match<Index>("Index.do"));
        }
    }
}

2. [代码]CommandFactory其实就是个帮助类     跳至 [1] [2] [3] [4] [全屏预览]

public class CommandFactory
    {
        public Command match<T>(string path) where T : DiscreteCommand
        {
            return new CommandImpl(Container.get_a<T>(),new RegularExpressFilter(path));
        }
    }

3. [代码]RegularExpressFilter简单实现用正则表达式,来解析URL     跳至 [1] [2] [3] [4] [全屏预览]

 public class RegularExpressFilter:CommandFilter
    {
        private readonly Regex regex;

        public RegularExpressFilter(string match)
        {
            regex = new Regex(match);
        }

        public bool can_process(WebRequest request)
        {
            return regex.IsMatch(request.Input.RequestPath);
        }
    }

4. [代码]Index是一个Command用来后台处理Web请求     跳至 [1] [2] [3] [4] [全屏预览]

[RegisterInContainer(LifeCycle.singleton)]
    public class Index:DiscreteCommand
    {
        public void process(WebRequest request)
        {
            
            request.Output.Display(new View("Index"),
                @" <h3>卓越之行</h3>
<p>宏卓科技公司专注于最新软件开发技术、开发流程和业务服务。让所有这些技术为了一个目标---您的业务服务. </p>
<ul>
    <li> 使用行为/测试驱动方式追溯需求,驱动开发,不丢需求 </li>
    <li> 利用敏捷流程提高用户体验,降低风险 </li>
    <li> 使用良好的架构提高系统的扩展性和维护性,同时降低开发的可变成本 </li>
    <li> 利用对业务流程的深入了解,开发适用软件,提供业务服务,使服务与软件无缝结合、同步发展。</li>
<ul>
<p>
终极目标:动成长软件,让我们的系统与你公司的业务一起成长。
</p>
"
                );
        }
    }


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»