• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

asp.net的mvc5, 看起来还不错,但有几个问题很困惑

bwangel 2014-04-26 01:58:42
以前一直不太关注mvc,因为版本更新太快了,而且新旧还不兼容,对我最关注的性能也没有任何提高,仅仅是url好看了一点而已。
现在发展到mvc5了,想来该解决的问题也解决了吧。成熟稳定了吧。
正在尝试,不太熟悉,所以有几个困惑:

1. razor的视图引擎,能不能做到和美工切出来的页面的无缝配合,在我看来,还是得靠程序员去“翻译”。
2. 新的Identity的认证机制,扩展性和易用性有提高,但原来的用户表用int型作主键,是否不兼容?要改数据库架构来适应它?
3. razor上的所有生成页面的语法都致力于生成静态html,但如果是ajax应用,就得返回json数据,客户端用js解析。能不能直接返回某个视图cshtml定义的模板片断解析出的html.这样各种丰富的razor语法也可直接用于ajax输出结果了。 虽然有Html.Partial这样的用法,但也只是作为一个标记输出静态页的某一部分。(我说的静态页,是指服务端第一次返回的完整html,没有ajax)
...全文
6938 1 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
changshenglugu 2015-02-13
引用 8 楼 sj178220709 的回复:
[quote=引用 6 楼 sp1234 的回复:] 学习asp.net mvc5,我觉得没有什么意义。当然你学了一些服务器端与之前不一样的语法,但是你学习到了真正需要的UI控件的开发使用技术了吗?(因为它不注重复杂的商务UI控件所以丢给你自己去找相关的前端插件)
mvc事实上我不觉得它是一套开发框架,因为太灵活了, 其实我们完全可以把mc和razor引擎仅仅当做是html+http模式的语法糖,它为我们封装了一些便利的操作手段,但一切还是以正统bs手段(所有交互皆为b和s之间的request和response)来指导开发思路的, 我仅仅是用了它[post]的标记头,jsonresult和actionresult的response类型封装等语法糖罢了[/quote]”html+http模式的语法糖“,这种观点好有趣
回复
bwangel 2014-04-28
引用 10 楼 webdiyer 的回复:
第一个问题:任何动态网页技术都不可能做到和美工切出来的页面的无缝配合; 第二个问题:asp.net identity 2.0已经支持int类型做为主键,官方就有示例,我现在的项目中用的也是这种,只是支持的有点不太彻底,因为User.Identity.GetUserId()返回的还是string类型,需要用int.Parse处理一下,下次更新时应该会解决这个问题。
感谢指点。不过我懒得麻烦,都换成GUID了。这样兼容性最好。安安静静。
回复
bwangel 2014-04-28
引用 5 楼 sp1234 的回复:
这里用“产生”这两个字不妥: 静态页起码就是根本不用asp.net来产生的页面 --> 静态页起码就是根本不用asp.net来承载输出的页面 把一个静态页放在任何web服务器上,最低级的web服务器,都可以下载输出。而不需要asp.net动态产生html。
你不必如此纠结于“静态”这个词。在我看来,只要下载整个页面以后,没有进一步的服务器交互,它就是“静态”的。在浏览器看来, 解析*.aspx或*.jsp或*.html或*.shtml没有任何区别。都是服务器端一次性处理。 我之所以强调ajax能直接返回cshtml模板定义的页面片断,是为了使客户端返回的结果格式更加可控,毕竟现在的各类所谓“前端”模板缺少设计性。完全靠Coder来拼。想想其实也简单,只要ajax的请求是一个完整的mvc请求地址就行了。
回复
引用 8 楼 sj178220709 的回复:
[quote=引用 6 楼 sp1234 的回复:] 学习asp.net mvc5,我觉得没有什么意义。当然你学了一些服务器端与之前不一样的语法,但是你学习到了真正需要的UI控件的开发使用技术了吗?(因为它不注重复杂的商务UI控件所以丢给你自己去找相关的前端插件)
mvc事实上我不觉得它是一套开发框架,因为太灵活了, 其实我们完全可以把mc和razor引擎仅仅当做是html+http模式的语法糖,它为我们封装了一些便利的操作手段,但一切还是以正统bs手段(所有交互皆为b和s之间的request和response)来指导开发思路的, 我仅仅是用了它[post]的标记头,jsonresult和actionresult的response类型封装等语法糖罢了[/quote] 其实我们完全可以把mvc和razor引擎仅仅当做是html+http模式的语法糖. 现在的bs开发,终究是绕不开js这玩意的. 稍微复杂的前端交互,使用webform那种事件驱动模型,肯定是不能满足的.
回复
引用 6 楼 sp1234 的回复:
学习asp.net mvc5,我觉得没有什么意义。当然你学了一些服务器端与之前不一样的语法,但是你学习到了真正需要的UI控件的开发使用技术了吗?(因为它不注重复杂的商务UI控件所以丢给你自己去找相关的前端插件)
mvc事实上我不觉得它是一套开发框架,因为太灵活了, 其实我们完全可以把mc和razor引擎仅仅当做是html+http模式的语法糖,它为我们封装了一些便利的操作手段,但一切还是以正统bs手段(所有交互皆为b和s之间的request和response)来指导开发思路的, 我仅仅是用了它[post]的标记头,jsonresult和actionresult的response类型封装等语法糖罢了
回复
fenlix 2014-04-27
楼上说的好,给个赞
回复
以前是asp.net入门门槛极低所以好多人学它,现在是连这个门槛有些人都懒得学了,以为html+javascript的门坎“更低”! 实际上如果你使用Ajax方式获取数据然后选然UI界面,那么门槛在你的javascript框架的掌握程度。我就根本不信一些从asp.net上会个“三脚猫”的jQuery语句的程序员就能做好web前端开发。你需要了解例如knockout等至少一种具有生产力的UI框架,以及(例如基于jQuery的)多种UI框架中的插件(例如至少你应该熟练使用3、4种DataGrid、Tree、Details等等。实际上我们还要求自己去开发各种插件,例如网站的根据栏目而自动产生的导航UI的插件、文章评论用的插件、网页上文本编辑的插件、网页上即时聊天用的插件,等等。 学习asp.net mvc5,我觉得没有什么意义。当然你学了一些服务器端与之前不一样的语法,但是你学习到了真正需要的UI控件的开发使用技术了吗?(因为它不注重复杂的商务UI控件所以丢给你自己去找相关的前端插件)
回复
这里用“产生”这两个字不妥: 静态页起码就是根本不用asp.net来产生的页面 --> 静态页起码就是根本不用asp.net来承载输出的页面 把一个静态页放在任何web服务器上,最低级的web服务器,都可以下载输出。而不需要asp.net动态产生html。
回复
美工切图,不是美工的工作的结束。美工产生的html+css,要是真正的“静态页面”,也就是说凡是涉及数据变动的地方,你用html也就可以变动。而美工切图,往往用图片来骗人,缺少css。这个时候如果你说“让程序员去翻译”这就是亏本了,你被美工给骗了。 什么叫做“静态页”?静态页起码就是根本不用asp.net来产生的页面。如果你用asp.net一遍遍地动态产生html,算是什么静态页?只不过asp.net mvc比asp.net webform更低级一些,所以你才感觉它是“静态页”。实际上不论什么asp.net,都一样是最终产生并输出的html。 Ajax是对应用服务器进行“输入、输出”的访问,跟页面UI没有直接关系。它不引起页面回发。因此你不要把Ajax跟页面UI生成机制扯在一起。Ajax应该针对数据(json格式)输出而设计。
回复
webdiyer 2014-04-27
第一个问题:任何动态网页技术都不可能做到和美工切出来的页面的无缝配合; 第二个问题:asp.net identity 2.0已经支持int类型做为主键,官方就有示例,我现在的项目中用的也是这种,只是支持的有点不太彻底,因为User.Identity.GetUserId()返回的还是string类型,需要用int.Parse处理一下,下次更新时应该会解决这个问题。
回复
blownewbee 2014-04-26
1. 美工不能只会ps,起码也要懂一点html,什么都不懂,的确不行,不过asp.net mvc不行,用stucts或者ror难道就行了么? 2. 说实话,默认的东西基本没用,除非你就打算开发一个原型小系统。 3. 有很多js的模板引擎,传回json,然后在客户端双向绑定,或者生成html代码片段,这个问你们公司的前端程序员去。
回复
黑子大哥 2014-04-26
第一:除非那个美工很懂,各方面做得很好,要不然不管是php还是asp.net 还是asp.mvc 都需要程序员去磨合 比如:有一行,一行有3列,美工做的时候,每个列都只写了几个字,看起来就整齐好看,当你套上程序之后某个列字符多了,或者这个列是后台输出的html代码,就会造成不整齐 第二:Identity和asp.net里面是一样的,没什么区别 第三:没整么懂你说的 razor模板支持静态模板生成,如果是ajax应用,一样的做,只是用ajax请求、分析、填内容而已,不用ajax就直接在解析razor的时候就填充内容
回复
黑子大哥 2014-04-26
说这么多,我都懒得看完,就这么给你说吧,asp.net能办到的,mvc都能办到,你的认识不成熟
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2014-04-26 01:58
社区公告
暂无公告