浅谈.net MVC

时间:2019-05-14 02:30:26下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《浅谈.net MVC》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《浅谈.net MVC》。

第一篇:浅谈.net MVC

这些天开始学习asp.netmvc,用传统的asp.net已经快四的年了,刚开始接触asp.netmvc确认感觉有点不适应,主要体现在asp.netmvc的实现上。

ASP.net MVC使用心得:问题总结powered by 25175.net

问题一:要想学习asp.netmvc,我个人觉的最重要的一步是知道mvc路由机制,传统的asp.net程序要想访问一个页面,都是根据页面路径来访问,但MVC并不能直接访问aspx页面。

问题二:理解MVC三部分的含义和用法。当我们创建一个asp.netmvc应用程序时,系统会默认生成三个文件夹:

1:Controllers,对应MVC中的C,主要是处理所有请求与做出对应的响应;

2:Models,对应MVC中的M,相当时我们平时创建工程中的实体工程,只不过在MVC中它充当了存放数据模型的作用;

3:Views,对应MVC中的V,这里就是存放用户访问的页面文件,但是这个文件不能在浏览器中根据路径访问。

对于系统生成的asp.netmvc项目,我对其做了如下扩展:

扩展点一:系统之所以在web工程中直接创建了三个文件夹,是为了更加直观的体现MVC模式,真正项目中我们需要把它们分开。

扩展点二:MVC中重要的路由处理,默认情况是在Global.asax文件中,我们也可以把这块内容独立出来。扩展点三:把Controller类和业务逻辑分离,这里可以采用Repository模式。

ASP.net MVC使用心得:案例DEMO

创建一个简单的留言簿的项目,数据存储采用sql,本想用linq to entity,但总觉的这部分还相关不完善,且性能存在问题,故使用传统ado.net实现数据存储。下面是这个项目的分层。

1:GuestBook.Web,页面表示层,MVC中的V。

2:GuestBook.MVC.Controller,存放项目所有的Controller,MVC中的C。我们知道Controller有两个作用:第一,处理请求;第二,做出对应的响应。第二点就是我们平时理解的后台功能实现,例如数据的增删改查等。我们可以把这部分功能与Controller分离,即所有的业务逻辑都写在业务逻辑层,不直接依赖

Controller,我们可以进一步把这些功能点抽象出来,让Controller依赖一个公共的接口。这个思想我之前的一篇文章有点异曲同工之处:对增删改查用面向对象进行包装

首先:创建一个Repository接口:IRepository.cs,里面包含些常见数据处理操作方法:这个接口是一个泛型接口,以实现所有实体类的通用性。

1.public interface IRepository< T>

2.{

3.List< T> FindAllInfo();

4.T GetInfo(T model);

5.boolAdd(T model);

6.boolDelete(T model);

7.boolEdit(T model);

8.}

然后:实现一条留言的数据处理:

1.public List< GuestBookInfo> FindAllInfo()

2.{

3.string sql = “select * from GuestBook”;

4.5.List< GuestBookInfo> list = new List< GuestBookInfo>();

6.using(SqlDataReader dr=SqlHelper.ExecuteReader(conn ,CommandType.Text ,sql))

7.{

8.while(dr.Read())

9.{

10.GuestBookInfo model = new GuestBookInfo();

11.model.ID = int.Parse(dr[“ID”].ToString());

12.model.sTitle = dr[“sTitle”].ToString();

13.model.sContent = dr[“sContent”].ToString();

14.list.Add(model);

15.}

16.17.}

18.return list;

19.}

20.public GuestBookInfo GetInfo(GuestBookInfo model)

21.{

22.string sql = “select * from GuestBook where ID=”+model.ID.ToString();

23.using(SqlDataReader dr = SqlHelper.ExecuteReader(conn, CommandType.Text, sql))

24.{

25.if(dr.Read())

26.{

27.model.ID = int.Parse(dr[“ID”].ToString());

28.model.sTitle = dr[“sTitle”].ToString();

29.model.sContent = dr[“sContent”].ToString();

30.31.}

32.33.}

34.return model;

35.}

36.public bool Add(GuestBookInfo model)

37.{

38.string sql = “insert into GuestBook(sTitle,sContent)values('” + model.sTitle + “','” + model.sContent + “')”;

39.int i = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql);

40.if(i > 0)

41.{ return true;}

42.return false;

43.}

44.public bool Delete(GuestBookInfo model)

45.{

46.string sql = “delete GuestBook where ID=” + model.I

D.ToString();

47.int i = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql);

48.if(i > 0)

49.{ return true;}

50.return false;

51.}

52.public bool Edit(GuestBookInfo model)

53.{

54.string sql = “update GuestBook set sTitle='” + model.sTitle + “',sContent='” + model.sContent + “' where ID=” + model.ID.ToString();

55.int i = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql);

56.if(i > 0)

57.{ return true;}

58.return false;

59.}

其实:Controller依赖IRepository接口。

1.public class GuestBookController : System.Web.Mvc.Controller

2.{

3.IRepository< GuestBookInfo> inter = new BLL_GuestBook();

4.public ActionResult Index()

5.{

6.var models = inter.FindAllInfo();

7.return View(“Index”, models);

8.}

9.[AcceptVerbs(HttpVerbs.Post)]

10.public ActionResult Create(GuestBookInfo model)

11.{

12.13.inter.Add(model);

14.return RedirectToAction(“Index”);

15.}

16.public ActionResult Create()

17.{

18.GuestBookInfo model = new GuestBookInfo();

19.return View(model);

20.}

21.public ActionResult Details(int id)

22.{

23.24.GuestBookInfo model=new GuestBookInfo();

25.model.ID =id;

26.model =inter.GetInfo(model);

27.if(string.IsNullOrEmpty(model.sTitle))

28.{ return View(“NotFound”);}

29.else

30.{

31.return View(“Details”,model);

32.}

33.}

34.public ActionResult Edit(int id)

35.{

36.GuestBookInfo model = new GuestBookInfo();

37.model.ID = id;

38.model = inter.GetInfo(model);

39.if(string.IsNullOrEmpty(model.sTitle))

40.{ return View(“NotFound”);}

41.else

42.{

43.return View(“Edit”, model);

44.}

45.}

46.[AcceptVerbs(HttpVerbs.Post)]

47.public ActionResult Edit(int id, FormCollection formValues)

48.{

49.GuestBookInfo model = new GuestBookInfo();

50.model.ID = id;

51.model = inter.GetInfo(model);

52.UpdateModel(model);

53.inter.Edit(model);

54.return RedirectToAction(“Index”);

55.}

56.public ActionResult Delete(int id)

57.{

58.GuestBookInfo model = new GuestBookInfo();

59.model.ID = id;

60.model = inter.GetInfo(model);

61.if(model == null)

62.return View(“NotFound”);

63.inter.Delete(model);

64.return RedirectToAction(“Index”);

65.}

66.67.}

3:GuestBook.Model,MVC中的M。

4:GuestBook.RouteManager,路由管理项目,把路由处理从Global.asax中分离开。我们创建一个新类:MyMvcAppliation.cs

1.publicclass MyMvcAppliation:HttpApplication

2.{

3.public static void RegisterRoutes(RouteCollection routes)

4.{

5.routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);6.7.routes.MapRoute(8.“Default”,// Route name

9.“{controller}/{action}/{id}”,// URL with parameters

10.new { controller = “Home”, action = “Index”, id = “" },// Parameter defaults

11.new string[] { ”GuestBook.MVC.Controller“ }

12.);

13.14.15.}

16.17.protected void Application_Start()

18.{

19.ControllerBuilder.Current.DefaultNamespaces.Add(”GuestBook.MVC.Controller");

20.RegisterRoutes(RouteTable.Routes);

21.}

22.}

5:GuestBook.Data,数据处理工具类,例如SqlHelp等等。

6:GuestBook.DAL,数据处理层。

7:GuestBook.BLL,业务逻辑层。

8:GuestBook.MyInterface,相关接口,本项目中包含Repository模式中的接口类。

这篇文章主要是探讨了MVC项目的分层以及部分扩展,欢迎大家提出更好的想法。这些就是我ASP.net MVC的使用心得。

下载浅谈.net MVCword格式文档
下载浅谈.net MVC.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐