新足迹

 找回密码
 注册

精华好帖回顾

· DIY ----- 让家的每一个角落更漂亮方便(床板系列之1) (2010-8-15) coleclark999 · 双职工家庭的福音之十一 挑战味觉的麻婆豆腐 (2005-5-21) binbingogo
· 【Y叔家常便饭】---- 自制简单好做又美味的“五香豆腐干” (2013-6-9) Y叔 · 【推荐】一些新移民可能需要的网站收藏集 (2006-2-15) powermao
Advertisement
Advertisement
12
返回列表 发新帖
楼主:乱码

asp.net mvc对复杂object的model binding痛苦死了 [复制链接]

发表于 2011-2-1 15:42 |显示全部楼层

回复 29# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
服务器端可以用HtmlTextWriter做
Advertisement
Advertisement

发表于 2011-2-1 15:42 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2011-2-1 16:40 发表
是嘛,所以mvc的优点主要是结构更清楚,测试更方便,和是不是自己写HTML没啥太大关系,这个其实是它的劣势,增加了开发工作量。现在的网络和计算机处理能力都很以前完全不一样,有一点多余的代码,或者效率稍差点,在大多数情况下都不用太考虑。


嗯,这个观点比较新

发表于 2011-2-1 15:43 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2011-2-1 16:42 发表
服务器端可以用HtmlTextWriter做


嗯,这是static的,dynamic的还是需要server control

2010年度奖章获得者

发表于 2011-2-1 15:44 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
嘿, 那个用的舒服用那个呗, 你不用webform,SP 挺得心应手的嘛,真的没啥必要换的。

其实工具,framework都是浮云, 你水平好用啥都能写出好东西。

It's just like sex

。。。[此处删除100字]。。。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2011-2-1 15:44 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-1 16:26 发表
mvc 最大的优点就是你对html output 有100% 的控制。
真不知道你在说什么。。。

binder 是服务端的,

html render 成什么样的是客户端的问题。

不要把两个混在一起说。


你应该不知道model binding在mvc中是什么概念

2010年度奖章获得者

发表于 2011-2-1 15:46 |显示全部楼层

回复 35# 的帖子

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
兄弟, 我MVC, MVVM 玩了都好几年了。。。
Advertisement
Advertisement

发表于 2011-2-1 15:47 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-1 16:44 发表
嘿, 那个用的舒服用那个呗, 你不用webform,SP 挺得心应手的嘛,真的没啥必要换的。

其实工具,framework都是浮云, 你水平好用啥都能写出好东西。

It's just like sex

。。。[此处删除100字]。。。


webform很好,我的确很喜欢,但mvc也不错,开阔一下思路

发表于 2011-2-1 15:48 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-1 16:46 发表
兄弟, 我MVC, MVVM 玩了都好几年了。。。


这我相信

2010年度奖章获得者

发表于 2011-2-1 15:49 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
MVP 里我们还手工写个个model binder framwork的。

发表于 2011-2-1 15:54 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
What happening here?

发表于 2011-2-1 15:54 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-1 16:46 发表
兄弟, 我MVC, MVVM 玩了都好几年了。。。


你认识inspire的michel luu?
Advertisement
Advertisement

发表于 2011-2-1 15:55 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-1 16:54 发表
What happening here?


having fun :)

发表于 2011-2-1 16:08 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
We are using MVC3, in our team nobody will back to webform.

2007 年度奖章获得者

发表于 2011-2-1 16:09 |显示全部楼层
此文章由 coolioo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coolioo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
MVC里面有Server Control吗?还是所有HTML都要手工写?

发表于 2011-2-1 16:15 |显示全部楼层
此文章由 jerryclark 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jerryclark 所有!转贴必须注明作者、出处和本声明,并保持内容完整
MVC好像可以用server control,ASP.Net会render成HTML。问题是没办法Postback,只能display

2007 年度奖章获得者

发表于 2011-2-1 16:17 |显示全部楼层
此文章由 coolioo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coolioo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
webform吧viewstate disable了,不用复杂Server Control,就没有post back,然后纯手工写HTML,这也是100% control HTML,而且页面出来也很干净。
Advertisement
Advertisement

发表于 2011-2-1 16:17 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 coolioo 于 2011-2-1 17:09 发表
MVC里面有Server Control吗?还是所有HTML都要手工写?


如果你用aspx和ascx,你可以用server control(ctrl-f loooking for "server control" in following article).

http://weblogs.asp.net/scottgu/a ... -mvc-framework.aspx

mvc中的html你可以完全手工写,但也有些辅助的手段让它自动生成。

发表于 2011-2-1 16:21 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 coolioo 于 2011-2-1 17:17 发表
webform吧viewstate disable了,不用复杂Server Control,就没有post back,然后纯手工写HTML,这也是100% control HTML,而且页面出来也很干净。


这是classic asp+ service layer就可以完成这些,不需要用webform这么重的framework,但productivity/security就很有问题,

2010年度奖章获得者

发表于 2011-2-1 16:37 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-2-1 16:54 发表


你认识inspire的michel luu?


I know Michael Jackson and Michael Zhang

Who is loo ?
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2011-2-1 20:09 |显示全部楼层
此文章由 ahwen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ahwen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
mvc3 release晚了一点,要不然我的项目也用上了。现在是mvc2,无法用上新的view engine razor

发表于 2011-2-1 20:22 |显示全部楼层
此文章由 ahwen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ahwen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有很多同志放心地把html rendering交给server control去做,甚至把这称作一个优点,对于我个人来说,是不能认同地。我的page写出来,总要看一下最终生成的html source,有一点碍眼的东西我都觉得不舒服。以前用web form,里面经常有一大堆乱七八糟的东西,看着难看,也浪费带宽,降低性能。并且使用javascript的时候,写起来有时也很不方便。mvc出现以后,除了其他的优点之外,还把这个问题完美地解决了。
乱码兄把mvc的templates作为例子,说rendering也像webform一样并不尽如人意。但我的理解是templates只是一种提高代码复用性的一个机制,里面的内容应该还是程序员手工来写,和server control完全不一样的。
除了之前提到的种种优点,mvc另一个地方就是routing,seo url。这对一些public sites非常重要。
用mvc,要把webform的一些概念完全抛弃。post back, events & code behinds, server side controls, viewstate, control state,统统都不能再用了,可以说是一次革命性的改变。

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2011-2-1 20:46 |显示全部楼层

回复 51# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
post back, events & code behinds, server side controls, viewstate, control state统统都不能再用了,可以说是一次革命性的改变
----你说的这些,我写ASP的时候就全部不能用,很早就是这样了。

评分

参与人数 3积分 +9 收起 理由
乱码 + 3 哈~~你的思路总是很有新意!!
+ 3 我很赞同
IsDonIsGood + 3 我很赞同

查看全部评分

发表于 2011-2-1 21:29 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ahwen 于 2011-2-1 21:22 发表
有很多同志放心地把html rendering交给server control去做,甚至把这称作一个优点,对于我个人来说,是不能认同地。我的page写出来,总要看一下最终生成的html source,有一点碍眼的东西我都觉得不舒服。以前用web form,里面经 ...


基本赞同.谢谢ahwen!!

web form server control rende出来的东西,我们基本上是改不了,除非自己在server control的基础上写extension, 但作为developer来说,server control render到html control的map,要很清楚,不然不是合格的程序员. 我想 view source最多的场合是:1. 用css加styling 2.用jQuery.

webform不如mvc从render html的角度上来说,webform会加一些container,这些container会反映在control id/name上,他们用undersore和$分开,但mvc中如果复杂的object model binding,所用的机制跟webform server control的机制如出一辙,不过是用dot和underscore分开, 它的object hierarchy state recovery的算法一定受webform load postback data的算法很大的启发,谁让他们是一个team的呢?

至于template,前一阵我跟本不知道还有这种问题,直到最近model binding总出问题,才知道有这个solution,但实话实说,它应该在mvc2中被强调,因为这种典型的场景很多,而不是像我一样捧到问题google才知道。

如果再引入collection的概念,rendering就更messy,它在model binding的时候要求collection是连续的,这有点过分,在client side用jQuery 对element delete/insert操作常有的事,这可能会导致model binding的失败,当然有work around,但这么连续的想起来,就觉得像噩梦一般,webform server control一个简单的state recovery到了mvc这边要付出这么大的代价,这会让新手望而却步。

再说viewstate,它的思路也是被mvc抄袭过去做多个page对一个object的state recovery,不过mvc说这是object serialization/deserialization,实质都是一样的。

我想说的是,mvc要辩证的看,有它美的地方,也有它messy的地方,它美的地方也是借鉴了很多已有framework的很多思路才有了现在的结果。

评分

参与人数 1积分 +3 收起 理由
IsDonIsGood + 3 老大威武~~

查看全部评分

发表于 2011-2-1 22:01 |显示全部楼层
此文章由 bullying520 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bullying520 所有!转贴必须注明作者、出处和本声明,并保持内容完整
足迹真的都是强人..............

发表于 2011-2-1 22:13 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
个人感觉乱码你太.Net了,哈哈
个人感觉网页就是string而已,比如说webform的Dropdown-box, 搞了半天费了老鼻子劲,就是产生一个<select>的string ,而且往往不灵活,带很多垃圾,与其这样不如自己生成一个<select> string,想怎样就怎样,option item想带多少attribute都可以

发表于 2011-2-1 22:38 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-1 23:13 发表
个人感觉乱码你太.Net了,哈哈
个人感觉网页就是string而已,比如说webform的Dropdown-box, 搞了半天费了老鼻子劲,就是产生一个的string ,而且往往不灵活,带很多垃圾,与其这样不如自己生成一个 string,想怎样就怎样,option item想带多少attribute都可以


哈哈,我的确有点太.net,没办法,指望这个吃饭呢

你说的没错,page就是一个大string,给browser来解释,至于如何解释就是browser自己的问题。

server side无论什么平台,就是根据request出相应的string,所以从这个意义上来说什么.net,java,php都没所谓,能多快好省的出string,就是好framework!!
Advertisement
Advertisement

发表于 2011-2-2 08:33 |显示全部楼层

我也在学习, 和乱码有相同的感觉

此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
mvc更适合十多年来传承下来的传统网站和应用模式(这个好像一直没怎么变过),mvc实际上框定的特别死,没有什么发挥空间,是一种轻量级server side的技术,为了适应client end 的多样性,抛开那些 view templates 不说,用mvc到是可以更好的融合jQuery, extjs, dojo, YUI这样的js library,这是microsoft注意到的一个市场的需求吧?因此它更灵活,我很不在乎最终生成的html source, 无论web form 还是mvc都没必要在乎,我用mvc,client end 全部是javascript也是一种实践,这个也许不符合你的标准,但是你很难说好与不好.

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 你太有才了

查看全部评分

发表于 2011-2-2 08:47 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Dan.and.Andy 于 2011-2-2 09:33 发表
mvc更适合十多年来传承下来的传统网站和应用模式(这个好像一直没怎么变过),mvc实际上框定的特别死,没有什么发挥空间,是一种轻量级server side的技术,为了适应client end 的多样性,抛开那些 view templates 不说,用mv ...


没分了,打白条先!!

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部