最近在学习asp.net mvc框架,看到的例子基本上都是使用linq,本人对linq略懂一点,使用linq很方便的地方,就是直接使用linq设计器(我这种说法可能不准确,也就是直接把sqlserver中的表拖到设计器中),但是我所知道的是这个功能只能使用sqlserver,我所在的公司项目都是基于oracle,用不了这个功能(现在不知道能不能支持了),而且我本人不是很喜欢用linq,我一直使用webforms,采用三层架构,我基本上都是使用DataReader充当model,或者在数据层使用DataReader读取数据封装到泛类再传给页面层调用。
我想问的是:如果不使用linq,怎么在mvc里,把数据(model)从c中传到v里呢。
备注:
我开发项目使用传统的三层架构,也就是petshop那一套,现在bll和dal层都写好了,想改成使用mvc结构,如何能做到最小的改动。
我的一个想法是:可不可以结合使用传统的三层架构,bll调用dal读数据保持不变,使用在mvc中的控制器调用bll取数据,再传给view,这种想法可行么,或者有更好的方法么。
mvc框架与三层架构并不冲突啊,你的想法可行啊,而且只改变页面部分,底层的东西都不需要改动啊
MVC和你的是没有冲突的,按照你的想法来做也是没有问题的。其实怎么说,MVC中使用linq来做数据处理,个人觉得这个一是个人原因,二是linq和MVC相对Asp.NET来说比较新,大家都为了自我满足下(仅为玩笑啊)。
以下资料是园子的一位高手写的
地址是:http://www.tzwhx.com/newOperate/Html/1/11/112/20069.html
你可以系统的看看
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练、灵活的掌握这两层之间的数据传递方法就非常重要。本文从两个方面进行探讨:
Ø Controller向View传递数据
Ø View向Controller传递数据
一、Controller向View传递数据
1. 使用ViewData传递数据
我们在Controller中定义如下:
ViewData[“Message”] = “Hello word!”;
然后在View中读取Controller中定义的ViewData数据,代码如下:
<% = Html.Encode(ViewData[“Message”]) %>
2. 使用TempData传递数据
我们在Controller中定义如下:
TempData[“Message”] = “Hello word!”;
然后在View中读取Controller中定义的TempData数据,代码如下:
<% = Html.Encode(TempData [“Message”]) %>
3. 使用Model传递数据
我想你用的是Linq直接生成的类吧,你可你把DataReader读到的数据封装成对象再传过去,如果你懒得写代码,就用工具生成吧。
那就使用ADO.NET也没关系阿
不妨考虑一下使用 ALinq , http://cn.alinq.org
呵呵 我也比较喜欢原来的写sql语句的,主要对Linq的表达式还不熟,不过Linq用熟的话肯定比写Sql语句好
ADO.NET
不推荐使用ViewData,ViewData、TempData都是用Session保存数据的
可以使用ViewBag 动态属性 .net 4.0出来的
MVC的世界里只有Model View Controller
一个url请求过来,route会直接找到对应的Controller中的Action,然后将对应的Model给View
所有的业务(包括数据交互)都是在Model中完成的
View只用于展示数据,考虑到Model的通用性,尽量不要在View层写业务逻辑 虽然它支持后台代码
我也是比较喜欢以前的SQL写法 不过现在没有办法在研究Lambda,因为也像楼主一样刚学习MVC