Hello World
Spiga

Get Ready for Real World ASP.NET MVC

2009-09-16 13:37 by 老赵, 13000 visits

2009年的TechED大会即将在北京举行(11/5 - 11/7),其中有我的一个Session,我将其命名为“Real World ASP.NET MVC”,希望可以分享一下自己在ASP.NET MVC方面的使用体会。

最近我一直在总结ASP.NET MVC使用的方方面面,将我之前提出的一些“最佳实践”给具体化,此外我也在构建MvcPatch这样的“补丁”、“扩展”及“示例”。有些朋友提出,我写的这一系列文章过于松散,话题之间关联不大。其实刚好相反,每个话题之间都是有联系的,我是把我解决问题过程中的思路细节表现出来。等一个阶段过后,我会整理一下我的思维脉络,把这些话题完整的串联起来。也算是对近期工作的一个总结。

此外,我还打算分享一下在进行ASP.NET MVC开发时的一些周边支持,它可能并不是在使用ASP.NET MVC框架,但是可以让系统构建过程更为“敏捷”,在TechED上的Session也主要是朝这个方向前进的。

而现在,希望大家可以给我一点帮助。例如,您在使用ASP.NET MVC开发Web应用程序时有没有遇到什么困难?您认为ASP.NET MVC哪方面还无法让人满意?各个方面都可以。

我会选择合适的话题来补充TechED的内容,也可以用其他方式(主要是博客)来谈下自己的感想。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

76 条回复

  1. 老赵
    admin
    链接

    老赵 2009-09-16 13:39:00

    发现TechEd 2009的页面对Chrome支持不好,赫赫。

  2. Justin
    *.*.*.*
    链接

    Justin 2009-09-16 13:42:00

    teched不打算去了,这个主题倒是很关注,老赵回头分享一下吧

  3. 老赵
    admin
    链接

    老赵 2009-09-16 13:46:00

    @Justin
    会的,因为TechED其实最多只能讲一些皮毛。

  4. Gnie
    *.*.*.*
    链接

    Gnie 2009-09-16 13:47:00

    刚刚门票已到手,但仍然没有课程明细~
    不知道老赵是哪天,MS给报路费了吗?

  5. 老赵
    admin
    链接

    老赵 2009-09-16 13:50:00

    @Gnie
    没订哪一天。微软不给报销路费,我打算绕弯“顺便”去TechEd。

  6. 潜水冠军[未注册用户]
    *.*.*.*
    链接

    潜水冠军[未注册用户] 2009-09-16 13:52:00

    到时候去占座。
    期待老赵精编版的MVC系列。。。

  7. 老赵
    admin
    链接

    老赵 2009-09-16 13:54:00

    @潜水冠军
    多谢支持,不过现在还是多给我点建议比较好,赫赫。

  8. Atpking
    *.*.*.*
    链接

    Atpking 2009-09-16 14:09:00

    到时候能提供视频下载否?

  9. 老赵
    admin
    链接

    老赵 2009-09-16 14:21:00

    @Atpking
    我也不知道啊。

  10. 第一控制.NET
    *.*.*.*
    链接

    第一控制.NET 2009-09-16 14:21:00

    已经预定参加。今年又能见到老赵了。去年你的session我也听了。呵呵。

  11. 也发一句[未注册用户]
    *.*.*.*
    链接

    也发一句[未注册用户] 2009-09-16 14:25:00

    @Jeffrey Zhao
    现在的htmlhelper似乎没有太多,能应用的实践中去么?例如没有tree,grid等,要快速开发实在有些头疼。
    另我也比较恼火webform生成非web标准的页面(例如tree采用table而非ul),究竟怎么办呢?看样子,微软是准备大力度地推广mvc这种方式了,webform只是支持着还是和mvc一样花力气发展呢?呵呵

  12. 老赵
    admin
    链接

    老赵 2009-09-16 14:26:00

    @也发一句
    收到了,多谢多谢。

  13. 麒麟.NET
    *.*.*.*
    链接

    麒麟.NET 2009-09-16 15:00:00

    居然离我的公司就两站地……可惜公司不给报销门票啊,哎
    老赵来北京请你吃饭啊

  14. 姓老名王
    *.*.*.*
    链接

    姓老名王 2009-09-16 15:21:00

    老赵,

    能否开一个专栏介绍一下ASP.NET MVC 的Best Practice, 现在一网络一搜都是入门的教程,但在实际上使用上碰到的问题就不少,比如说如何封装Controller,View, Model, 什么的情形下使用user control.

    扩展和实例太重要了...加油!

  15. kevinlzf[未注册用户]
    *.*.*.*
    链接

    kevinlzf[未注册用户] 2009-09-16 15:25:00

    关注中。。

  16. kenny.guo
    *.*.*.*
    链接

    kenny.guo 2009-09-16 16:36:00

    又见MVC

  17. 莫耶
    *.*.*.*
    链接

    莫耶 2009-09-16 17:30:00

    我比较关心的是
    多级目录路由在.net mvc中怎么实现
    有没有好的解决方案
    mvcPatch解决这个问题了吗?

  18. 老赵
    admin
    链接

    老赵 2009-09-16 17:31:00

    @莫耶
    什么叫做多级目录路由?
    如果是实际使用中很重要的功能,我肯定会放入MvcPatch的。

  19. 莫耶
    *.*.*.*
    链接

    莫耶 2009-09-16 17:39:00

    比如说
    Company代表某个公司(controller)
    artist代表艺人
    album代表某艺人的专辑

    101艺人的专辑1022 :
    /company/artist/101/album/1022

    当然 也可以做成 /company/album/1022
    只是第一种URL更直观

  20. 老赵
    admin
    链接

    老赵 2009-09-16 17:58:00

    @莫耶
    这个难道不是已经支持了吗?
    /{controller}/{artist}/{artistId}/{album}/{albumId}
    设action的默认值为ShowAlbum,然后就可以了。

    例如请求Xxx/laozhao/1/diandi/2,就是XxxController.ShowAlbum方法。
    Routing还是挺灵活的。

  21. 十一前[未注册用户]
    *.*.*.*
    链接

    十一前[未注册用户] 2009-09-16 18:01:00

    老赵,提你的名.票价可以优惠吗?

  22. 老赵
    admin
    链接

    老赵 2009-09-16 18:09:00

    @十一前
    这个不行。

  23. 韦恩卑鄙
    *.*.*.*
    链接

    韦恩卑鄙 2009-09-16 18:16:00

    @十一前
    会加倍的

  24. niming[未注册用户]
    *.*.*.*
    链接

    niming[未注册用户] 2009-09-16 18:37:00

    对mvc什么感觉都好,就一点不好,我找带checkbox的treeview差点找吐血了,老赵,请教你了,指点以下吧.

  25. 老赵
    admin
    链接

    老赵 2009-09-16 19:11:00

    @niming
    这个和mvc无关吧,其他系统咋做,asp.net mvc就咋做,充分利用客户端控件就可以了,比如dojo,比如yui。

  26. CoolCode
    *.*.*.*
    链接

    CoolCode 2009-09-16 20:42:00

    Jeffrey Zhao:发现TechEd 2009的页面对Chrome支持不好,赫赫。


    貌似没有走样,但当点菜单时,赫赫...

  27. 王德水
    *.*.*.*
    链接

    王德水 2009-09-16 21:21:00

    我非常关注ASP.NET MVC单元测试这一块

  28. 老赵
    admin
    链接

    老赵 2009-09-16 21:59:00

    @CoolCode
    没错没错

  29. lanxenet[未注册用户]
    *.*.*.*
    链接

    lanxenet[未注册用户] 2009-09-16 22:11:00

    在项目开发中一个很难受的地方就是TempData。比如从列表跳转到编辑页面,我一般会把列表中的数据保存到TempData,然后在编辑的时候直接取TempData中的数据;可是从编辑页面返回列表页面的时候,原来保存在TempData的数据会消失了;当然默认TempData是保存在Session中,为了节省资源提供只访问一次的功能。所以我不的不在编辑的时候重新把数据保存到TempData中。不知道老赵有什么好的解决办法?

  30. 老赵
    admin
    链接

    老赵 2009-09-16 22:27:00

    @lanxenet
    我从来不用TempData,我认为这是一个trick,以前开发时也从来没有需要过类似的功能……

  31. 奔向梦想
    *.*.*.*
    链接

    奔向梦想 2009-09-16 22:37:00

    webform有treeview控件可以使用,mvc如何使用server control?说是不建议使用server control,但是免费或者开源的带checkbox的tree我真就没找到功能不错的,各位有什么建议?我打算用mvc,但是一下子没有了treeview,还真不知道如何往下进行,Help!!!

  32. AntiGameZ
    *.*.*.*
    链接

    AntiGameZ 2009-09-16 22:54:00

    MVC新手,遇到几个不知道算不算问题的问题:
    1、对于Routing规则,具体的变化和实践没有什么参照。按照自己的思考,似乎Routing规则和Site Area的概念又有重叠。简单的举例:一个Blog的网站前台和管理后台在MVC中应该是怎样的组织结构?
    2、同时在学习T4,拷贝了MVC自带的Controller,View模板到自己的项目中,生成正常,但是对于中文的显示则完全不正常,尝试在T4模板里修改了OutputEncoding为UTF8,但是无用。生成的View必须把内容拷贝出来,删除,手动新建View再拷回去才一切正常。

    有劳老赵了。

  33. lanxenet[未注册用户]
    *.*.*.*
    链接

    lanxenet[未注册用户] 2009-09-16 23:07:00

    Jeffrey Zhao:
    @lanxenet
    我从来不用TempData,我认为这是一个trick,以前开发时也从来没有需要过类似的功能……



    就是要实现两个Action中互相传递数据,比如有一个Controller如下:
    public class MyController : ControllerBase
    {
    public ActionResult List(int? startRecord, int? maxRecords)
    {
    //从数据库检索列表要显示的数据,并构造对应的ViewModel
    ListViewModel model = GetListViewModels(startRecord, maxRecords);
    ...
    SetModelToTempData("ListData", model);
    return View("List", model);
    }
    public ActionResult Edit(String id)
    {
    ...
    ListViewModel model = GetModelFromTempData("ListData");
    //从model中获取要编辑的数据,避免重复向数据库发送SQL命令
    ...
    return View("Edit", model);
    }

    //other codes
    }

    如果不使用TempData的话,Action的数据通过什么方式进行传递呢?

  34. 老赵
    admin
    链接

    老赵 2009-09-16 23:26:00

    @lanxenet
    让第二个请求再去读数据即可,优化的策略很多,比如缓存,不会影响性能的。

  35. 老赵
    admin
    链接

    老赵 2009-09-16 23:27:00

    @AntiGameZ
    T4模板我没有理解过,有机会我尝试一下。
    你说的Site Area是指什么?

  36. AntiGameZ
    *.*.*.*
    链接

    AntiGameZ 2009-09-17 09:23:00

    @Jeffrey Zhao
    MVC 2.0 的Site Area概念,1.0也可以做到

  37. 老赵
    admin
    链接

    老赵 2009-09-17 09:51:00

    @AntiGameZ
    是啊,只要自己扩展,有什么做不到呢。
    我之前不还写过文章,把子域名map到area嘛。

  38. AntiGameZ
    *.*.*.*
    链接

    AntiGameZ 2009-09-17 10:02:00

    @Jeffrey Zhao
    是的,我都一一学习过。比较关注“正确的方式”。网站的前后台和子站(子域名)还不能算同一个概念。所以我觉得SiteArea并不应该是一个正确的解决方法(针对我的场景)。

    但是,自己改Routing的规则,感觉事实上是在实现一个SiteArea的机制,所以在这一点上非常迷惑。

  39. 老赵
    admin
    链接

    老赵 2009-09-17 10:10:00

    @AntiGameZ
    我设计的SiteArea,事实上只是查看route集合中Area的值,和子域名无关的。或者说可以自由搭配,没有绑定在一起。
    我有机会整理一个完整的解决方案出来吧。

  40. 妖居
    *.*.*.*
    链接

    妖居 2009-09-17 10:15:00

    周二刚刚拿到TechED 2009的票,老赵的Session一定要光顾。我在MVC 1.0出来不久(基本上1周之后)就力挺一个项目用了MVC,使用中遇到很多问题好在得到了AnyTao、特瑞李和老赵你的帮助。

    从两个方面说吧,首先说MVC本身或者微软官方MVC。目前感觉微软对它的开发支持还是不够,对应的HtmlHelper还是比较少的。相对复杂一些的场景,比如表格分页、排序等等还是需要第三方的支持,或者需要自己开发。相对于已经很成熟的WebForm,在开发速度上明显落后了。但是随着MVC2 Preview 1的出现,我觉得微软已经在企业级应用上面发力了。虽然感觉还是不够。

    其次是我发现从开发人员的角度,从事MVC开发的大部分都是以前开发WebForm的,有些人对于Web开发就是从WebForm开始的,导致对于像Post Get这些概念的欠缺。我的项目很多的页面开发人员都把MVC View做成一个ASP.NET页面了,里面一个大Form把所有的提交都Post过去然后再根据一个string进行判断,操作最后将数据回填回来。

  41. 老赵
    admin
    链接

    老赵 2009-09-17 10:20:00

    @妖居
    不过说实话,我认为需要加强的并不是HtmlHelper这种东西上面,而且这种东西实在容易扩展。
    还有就是……MVC和企业级应用的关系是什么啊?增加点ViewHelper就是支持企业级应用了吗?
    最后一条的确是个问题,需要有指引,目前的开源项目似乎也都做得不太好……

  42. 妖居
    *.*.*.*
    链接

    妖居 2009-09-17 11:22:00

    @Jeffrey Zhao
    我发现,在公司一个MVC介绍中,AnyTao说完了MVC的特点和优势,下面提问最多的就是MVC有没有像WebForm那种,拖个控件直接用的功能。而且像我们这种做外包的公司,最重要的就是开发效率,因为时间=价格。需要在最快的时间开发出高质量的程序,如果有充足的Helper那么必然可以提高生产率。像我那个项目,为了一个Grid的列排序折腾了将近1周,太不划算了。

    可能我说的“企业级应用”不准确,我是想说,比如团队比较大,网站比较复杂,业务逻辑里面角色很多的时候,如何分配项目的结构和人员的安排,比如在分配Controller的时候,是按照业务分类好呢?还是按照角色分类好?(相同的业务可能不同的角色都能参与,但是逻辑和页面多有或多或少的差别。)微软的MVC示例都太过简单了,像Oxite、Kigg和SitekiStore这样的项目,没有一些人的知道看起来也很费劲(虽然我知道你,还有老D介绍过一些)。我觉得能不能讲一下在大项目中如何用好MVC。

    最后一个问题可能和第一个有些关联,毕竟大家在WebForm里面混了很久,它“掩盖”了很多Web的真相。

    还有我发现MVC对于javascript,html和css的要求更高了。虽然WebForm开发也必须要知道这些,但是没有MVC暴露的这么明显。感觉我就是在做了MVC项目之后才真正认真的学习了CSS和JS。以前WebForm都是得过且过的。

  43. 麒麟.NET
    *.*.*.*
    链接

    麒麟.NET 2009-09-17 12:39:00

    Jeffrey Zhao:
    @Gnie
    没订哪一天。微软不给报销路费,我打算绕弯“顺便”去TechEd。


    难道老赵要坐船去天津,然后跑步到北京?

  44. chenleinet
    *.*.*.*
    链接

    chenleinet 2009-09-19 10:57:00

    mvc中ValidateAntiForgeryToken的命令参数,是做什么的?,我在博问里问了半个月,也没人回答,老赵帮忙解释一下呗,还有就是希望能讲一下mvc的控制器所设计到的安全特性的使用,先谢了

  45. 老赵
    admin
    链接

    老赵 2009-09-19 12:01:00

    @chenleinet
    这东西有参数吗?

  46. chenleinet
    *.*.*.*
    链接

    chenleinet 2009-09-19 17:01:00

    有啊,你可以试试啊

  47. 老赵
    admin
    链接

    老赵 2009-09-19 17:08:00

    @chenleinet
    我读了代码,没看到参数,估计没理解你的东西。你是指什么?

  48. chenleinet
    *.*.*.*
    链接

    chenleinet 2009-09-19 17:45:00

    [ValidateAntiForgeryToken(Order=
    public ActionResult FirstMVC(UserTest ut)
    {
    ViewData["txtName"] = ut.TxtName + "helloWorldPost";
    int a = 0;
    Styles style = new Styles();
    style = style & (~Styles.ShowBorder);
    return View(ut);
    },就是这个

  49. 老赵
    admin
    链接

    老赵 2009-09-19 18:00:00

    @chenleinet
    就是普通ActionFilter的Order属性,表示顺序。

  50. chenleinet
    *.*.*.*
    链接

    chenleinet 2009-09-19 18:04:00

    那里还有个salt,还有能不能给些详细的介绍啊

  51. 老赵
    admin
    链接

    老赵 2009-09-19 18:37:00

  52. chenleinet
    *.*.*.*
    链接

    chenleinet 2009-09-19 19:12:00

    见鬼了,我以前搜过的,没有啊,怎么这回出了这么多,谢了大哥

  53. 沐枫
    *.*.*.*
    链接

    沐枫 2009-09-19 19:53:00

    应用asp.net mvc有几点比较头痛:
    1. 没有成熟的官方控件。比如日期选择,时间选择,html编辑器等。
      虽然这些网络上有一批开源的,但成熟度不一,需要花时间去分别调研评估,对于皮肤定制,html以及脚本兼容和标准化等方面,都是很头痛的

    2. htmlhelper生成的代码,无法正常在设计时查看,完全是从WYSIWYG倒退到纯代码时代。
      这是视图或是asp.net mvc的缺陷。为什么不是标准的呢?如:
    <input name="address" value="${bind()}" />

    <input name="address" value='<%bind("address")%>' />

    <input value="{bind(c=>address)}" />

      甚至也有许多视图引擎完全扔掉html代码,这叫美工如何接手。

      现在许多视图引擎,也唯有spark稍微把html弄得好一些。

    3. asp.net mvc 目前官方的文档在哪里?

  54. yankai
    *.*.*.*
    链接

    yankai 2009-09-23 09:28:00

    希望能谈一下 asp.net mvc 的权限控制问题。

  55. 老赵
    admin
    链接

    老赵 2009-09-23 12:38:00

    @沐枫
    不过在我看来wysiwyg是给业余群众用的,呵呵。
    过一段时间我们讨论一下视图模板吧。
    官方文档在http://asp.net上

  56. 勇赴
    *.*.*.*
    链接

    勇赴 2009-09-24 22:36:00

    可能自己从做java过来的,对.net MVC有着天生的好感,终于可以告别那些看起来很美的服务端控件了,微软和jQuery合作对了,jQuery对于客户端支持是很强大的,从UI到验证还有很多插件,而且UI可以自己定义皮肤,感觉巨爽,客户端处理不是问题。可能大家觉得不方便的就是一些tree,treetalbe,grid这些东西比较头疼,jQuery插件里有很多,用着也很舒服,用着不爽就改源码,再不行还可以自己写插件,HtmlHelper里面扩展的grid的确不好用,看着也费劲,建议用jQuery的grid。还有用jQuery做ajax处理也很简单,真有点是给.net MVC定做的感觉。人说微软的东西只有到第三版才趋于完美,不过2.0我就要正版开用了,现在在用1.0搭建一个开发平台,感觉比webForm爽多了,嘻嘻

  57. 老赵
    admin
    链接

    老赵 2009-09-24 22:54:00

    @勇赴
    说微软东西只有第三版才好的人,从来没见过给出过理由的。

  58. 勇赴
    *.*.*.*
    链接

    勇赴 2009-09-25 00:22:00

    Jeffrey Zhao:
    @勇赴
    说微软东西只有第三版才好的人,从来没见过给出过理由的。


    现在想来,很多看起来很有道理很有冲击力的话是经不起推敲的,再说了人家也可能是戏谑之词,往往听的人有时会来劲:)

  59. 王书奎(网名:无忌)
    *.*.*.*
    链接

    王书奎(网名:无忌) 2009-09-28 11:44:00

    国庆节快乐!

    以后学习ASP.NET mvc 就请教你了 呵呵

  60. kinfey
    *.*.*.*
    链接

    kinfey 2009-09-29 00:13:00

    呵呵,记得常来我的博客!

  61. 菜鸟毛
    *.*.*.*
    链接

    菜鸟毛 2009-09-30 09:54:00

    我的这个问题真的很菜,但和MVC有关,更和您有关.

    请问老赵,怎么扩展IEnumerAble的ForEach(Action<T> action),你上次和我讲,但我看List<T>的源数据中只有定义,没有实现啊?

  62. 老赵
    admin
    链接

    老赵 2009-09-30 10:09:00

    @菜鸟毛
    了解一下“扩展方法”特性,再了解一下委托,就可以知道了。
    “List<T>的源数据中只有定义,没有实现”,什么叫“源数据”?List<T>是具体类,怎么可能只有定义没有实现?

  63. 菜鸟毛
    *.*.*.*
    链接

    菜鸟毛 2009-09-30 10:20:00

    我既然敢来,就作好挨训的装备,

    是这样的,我定义了扩展类
    public static class EnumerExtension<T>{
    public static void ForEach(this IEnumerable<T> eEnumber,Action<T> action)...
    },但是这显然错了,只有非泛型的静态类可以作为扩展类...要通过委托去扩展它吗?

  64. 老赵
    admin
    链接

    老赵 2009-09-30 10:45:00

    @菜鸟毛
    看来你对泛型的使用还不熟悉啊。
    你看一下System.Linq.Enumerable是怎么扩展的吧,用Refactor看。

  65. 菜鸟毛
    *.*.*.*
    链接

    菜鸟毛 2009-09-30 16:39:00

    找了老半天,还把mscorlib.dll都翻出来Refactor了一下,才弄出来,不知道对不对,代码帖出来您看看,大家共勉,祝节日快乐!!!!

    public static class EnumerExtension
    {
    public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) {
    if (action != null)
    {
    int eCount = enumerable.Count();
    for (int i = 0; i < eCount; i++)
    {
    action(enumerable.ElementAt(i));
    }
    }
    }
    }

  66. dsjian[未注册用户]
    *.*.*.*
    链接

    dsjian[未注册用户] 2009-10-05 10:00:00

    哈哈,我来show一下用ASP.NET MVC 做的小站:http://www.dsjian.com。
    也是在关注了老赵的博客后,才逐渐了解了ASP.NET MVC,自己也花了点时间用ASP.NET MVC做了这个应用。

  67. 小痕
    *.*.*.*
    链接

    小痕 2009-10-11 15:39:00

    感觉目前MVC的ORM层还不如rails里的active record方便快捷,人家能自动生成数据库schema呀。。我们还得手动来是吗?

  68. 老赵
    admin
    链接

    老赵 2009-10-11 15:43:00

    @小痕
    asp.net mvc里不带orm功能
    active record不是orm。
    自动生成schema的话,NHibernate和Entity Framework都可以。

  69. 小痕
    *.*.*.*
    链接

    小痕 2009-10-16 00:41:00

    @Jeffrey Zhao
    我感觉active record做的工作挺像ORM的,把relation database给抽象成object了吧?
    我刚开始接触ASP.NET MVC~~不知道用castle的active record来做mvc的orm好不?

  70. 老赵
    admin
    链接

    老赵 2009-10-16 01:14:00

    @小痕
    Active Record是把记录抽象为object,但是它不是将o的关系映射成r,而是直接对应起来了,所以应该算是一种table gateway还是什么的。
    我记不清了,但是我确定active record不是一种domain model的实现方式,具体我需要再查查。:)

  71. 小痕
    *.*.*.*
    链接

    小痕 2009-10-16 11:12:00

    @Jeffrey Zhao
    我把这种就当成ORM啦,呵呵~
    谢谢老赵~

  72. 大白
    *.*.*.*
    链接

    大白 2009-10-17 15:39:00

    老赵,有个问题,我一直找不到合适的解决方法,请教你一下:

    通常,我们做的前台页面,特别是首页,包含的内容丰富多彩。比如:
    有:通告、实时新闻列表、行业新闻列表、社区新闻、店铺排行、会员排行、产品排行、以及产品分类、以及搜索框,等等。
    这个时候,该如何从过controller给view传值?
    创建一个泛型view?
    但是这个viewModel要什么写合适?
    如果页面变更,这个 viewmodel也要重写,有没有一种方式,就是一个基本的viewModel,通用的。
    感觉不太可能实现,通常普通的页面,我可定义一个泛型viewModel,但是如果大量的不同的页面,定义viewmodel感觉有点累。

  73. 老赵
    admin
    链接

    老赵 2009-10-18 12:54:00

    @大白
    创建一个强类型的View(与泛型什么无关),其中包含众多List对象。
    如果页面改变,ViewModel要变化是正常的,没法用什么通用的做法。
    如果说真通用,那么就用ViewData这个弱类型字典,很通用的。

  74. 大白
    *.*.*.*
    链接

    大白 2009-10-19 08:34:00

    看来我想太多了.

  75. 沐枫
    *.*.*.*
    链接

    沐枫 2009-10-23 17:23:00

    @Jeffrey Zhao
    wysiwyg不仅仅是给业余用的,他也会同时提高程序员的开发效率,使得有些效果或页面布局,不需要运行(实际运行或脑中运行),就可以直观观察到。

    另外,美工对于这样的代码也很容易的接收修改和调整样式,而不需要专门学习。

  76. shl716[未注册用户]
    *.*.*.*
    链接

    shl716[未注册用户] 2009-11-18 16:41:00

    请问:asp.net mvc2.0 beta版是不是不能在winxp中使用?有谁在winxp环境中成功安装?

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我