好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MVC和三层 【转】热闹

MVC和三层 【转】热闹

这里说的MVC指的是设计模式里的MVC不是asp.net mvc。

  既然MVC是一种设计模式,那么他就应该在任何地方都可以使用。比如三层。

  有人说MVC里的V相当于三层里的UI,M相当于三层里的DAL + BLL。这么理解也不错,因为设计模式可以应用在任何地方,这么理解是完全可以的。但是我有另一种理解,大家看看对不对。


  我觉得在UI层里面也可以使用MVC设计模式。请注意仅仅只在UI层里。还是用一个实例来说明吧,我不擅长讲原理。

  假设我们要显示博客园的首页,再缩小一下范围,我们要实现首页的里博文列表。美工做出来的html是这样的(代码一),那么这个是不是V呢?

  下一步,我们要把数据库里的数据填充上。我们再来定义一个json(代码二),那么这个是不是M?准确的说是M的一部分。

  然后我们要把html和数据合在一起,我们可以写一段js(代码三)来实现。那么这段js是什么呢?这个我也有一些犹豫,不知道是属于M还是应该属于C。暂且先放在这里。

  这些东西如何配合工作呢?我们再写一段js(代码四)。

  这个可以说是C,没有什么问题吧。页面加载后触发,加载V,加载M,调用代码三,把html和数据合在一起。

  那么我上面说的这些是不是应用了MVC设计模式呢?这个我还真不敢确定。如果你说,这些都是三层里的UI,那么我同意。不过如果你说这些都是MVC里的V,那么我就不同意了。呵呵。

  刚刚学习jQuery,js的底子也比较烂,所以代码比较惨不忍赌了,希望能够把我的意思表达出来,大家多多包涵。

代码一:

< div class ="post_item" >
    < div class ="digg" >
        < div class ="diggit" >
            < span class ="diggnum" id ="digg_count_{id}" > {顶的数量} </ span >
        </ div >
        < div class ="clear" ></ div >    
        < div id ="digg_tip_{id}" class ="digg_tip" ></ div >
    </ div >      
    < div class ="post_item_body" >
        < h3 >< a class ="titlelnk" href ="{随笔url}" target ="_blank" > {标题} </ a ></ h3 >       
        < p class ="post_item_summary" >
            < a href ="{作者url}" target ="_blank" >< img align ="left" class ="pfs" src ="{作者头像}" alt ="" /></ a >  
            {随笔简介} </ p >       
    < div class ="post_item_foot" >        
    < a href ="{作者url}" class ="lightblue" > {作者昵称} </ a >
    发布于 {发表时间}
    < span class ="article_comment" >< a href ="{随笔url}#commentform" title ="最新评论时间:{最新评论时间}" class ="gray" >
        评论( < span id ="feedback_count_2042255" > {评论数} </ span > ) </ a ></ span >
    < span class ="article_view" >< a href ="{随笔url}" class ="gray" >
        阅读( < span id ="viewcount_2042255" > {阅读次数} </ span > ) </ a ></ span ></ div >
    </ div >
    < div class ="clear" ></ div >
</ div >

代码二:

view source print ?

var bolg = {

[ "标题" : "" ; "随笔URL" : "" ;其他省略……],

[ "标题" : "" ; "随笔URL" : "" ;其他省略……]

}

代码三:

view source print ?

var 模板 = "" ; //就是上面那段html

var div = replace(模板, "{标题}" ,bolg[0].标题);

//也可以用其他的方法实现,目前我只会替换。当然还要写个循环,这里就省略了。

代码四:

view source print ?

$(document).ready( function (){

$.ajax({

type: "GET" ,

url: "blog.ashx" , //获取数据

success: function (msg){

//调用第三段代码,显示数据

}

}

});

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于MVC和三层 【转】热闹的详细内容...

  阅读:39次

上一篇: Trigger4Orchard

下一篇:Razor4Orchard v1.2