asp.net MVC + linq to Entity简单教程(二)MVC的简单操作

原创 2012年03月28日 11:36:20

  MVC的概念不多说,model + view + Controller 有人说这个和三层没有什么区别啊。也是分三层写的啊。MVC中model层我们真的没有做什么,基本就是建立数据模型,而controller层是逻辑判断和数据操作,而View则是简单的页面显示。这么一看,和简单三层没有区别。其实我们只要仔细的研究一下就会发现,MVC更想是对WEB层的一个再分,就是把WEB进行了一个三层分化。我不知道我这样说对不对,我是这么理解的。

  好了,更多的概念不多说,下面介绍一下,MVC的简单的操作。

  个人认为,MVC做一些网站或是新闻列表类的项目,速度非常快,如果你有一个非常好的美工同伴,你只要写好C层,省下的就都不用你管了。因为如果你的表结构不复杂,Entity已经把model层全给你写好了。你什么都不用做了。

  先简单说一下 Global.asax文件中的 public static void RegisterRoutes(RouteCollection routes)的设置,其实他的设置很有意思,也很简单,说白了,就是你要在页面间传的值的格式和值的名字。

  如下:

   

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "TwoValue",
                "{controller}/{action}/{schoolcode}/{selects}"
            );

            routes.MapRoute(
                "ThreeValue",
                "{controller}/{action}/{schoolcode}/{selects}/{id}"
            );

            routes.MapRoute(
                "FourValue",
                "{controller}/{action}/{UserName}/{UserPwd}/{UserType}/{schoolcode}"
            );

            routes.MapRoute(
                "FiveValue",
                "{controller}/{action}/{schoolcode}/{type}/{num}/{username}/{userphone}"
            );

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Login", id = UrlParameter.Optional } // Parameter defaults
            );

        }

  这里的写法与语法,不多说,网上很多。只说明一点,我这里设置了很多,有人会说,MVC怎么认啊。万一我传的是一个值,他按二个值给我传怎么办呢。MVC还是很聪明的,他会根据你这里面的方法的顺序和值的配对关系,以及值名进行查找最匹配的来进行传值,不过有一点,要说明的是,这里定义的值名,你在C中进行写的时候,一定要与这里的名一样,如

  

routes.MapRoute(
                "TwoValue",
                "{controller}/{action}/{schoolcode}/{selects}"
            );
  这是传二个值的简单方法。我们看一下,前二个值,是C层和C层中的action的名字,这二个可以根据你自己情况去写,可是后面的二个名字,schoolcode,selects就必须要和这个一样,

  

/// <summary>
        /// 家长通讯录
        /// </summary>
        /// <param name="schoolcode">学校标识</param>
        /// <param name="selects">老师teach_id</param>
        /// <returns></returns>
        public ActionResult ParentIndex(string schoolcode,string selects)
        {
            ViewData["schoolcode"] = schoolcode;
            ViewData["teach_id"] = selects;

            return View();
        }

   看到了吧,你可以试着,将schoolcode,selects改一下名,看会有什么效果。


   下面我们来看一下C层的,C层的其实很简单,根据不同的要求去写不同的方法,一般都是ActionResult这样的,他的返回值,有很多种,如上面程序中的,return View();

           基本上就是返回一个空了。还有一些如return VIew(aaa);,return content(""),等方法,这个在以后会看到。

    这个不多说了,这里我要说一下,在生成V层时一些注意的地方,生成V层一般,是点C层的方法,我后可以自动生成相关的页面了。

  

  

   View Name,就是你要生成的V层的文件名,这里我主要要说的,就是我展的这个下拉列表,这里是你所有model模型的表结构,在这里你可以为你这个V层的页面选择一下,它显示的数据是哪个表的,这里注意的事,这里的简单,是单表,如果是多表怎么办呢。只能自己去models里建立一个类文件,然后将数据存成它的格式就行了。就像三层里我们写的一样。

   

  选择完,数据类之后,我们就要选择,V层页面显示的样子了,这里很重要也很有意思,这几个选项目,大家一目了然,建立,删除,浏览,编辑,空,列表。如果你做简单的页面,只要选择就行,他就会给你生成一个例子,很简单,不过列表没有分页。我这里要说的,因为生成的样子一般不会与我们要的样子一样,所以大家感觉没什么,其实不然,你选择之后,它会在V层的页面page部分,有所不同,这个不同就决定了,你页面显示的不同。

  下面是三个图,大家看一下,第一个图,是不选数据类,第二个图,是选数据类,但是选择一个空,第三个是选数据类,而选择了列表,大家看一下,他们的区别

  

  (图1)

(图2)


(图3)

  大家看到区别了吧。这个在以后的具体程序中,我们也会说到,列表什么样,详细页面什么样,空什么样。这里主要要说明的是,就是让大家在生成V层的时候,选择一下自己要的类别,这样对程序开发有一个便捷性

  这里要提醒大家一点的,就是我上面提到的,如果我要提的数据不是一个单表,而且是一个多表查询,查询想要得到的数据,还是从多表中取出的,这怎么办呢。我前面说到了,就是在model中生成一个文件,如下面的程序,就是我的写的一个,这里面的三个值,一个是学生标识种子,一个学生姓名,一个是家长电话,是从二个表中取的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace En_MVC_test.Models
{
    public class stu_kind
    {
        /// <summary>
        /// 标识种子
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public string studentName { get; set; }


        /// <summary>
        /// 用户电话
        /// </summary>
        public string stuKindPhone { get; set; }

    }
}

这样就行了,这时候,你保存,到上面的data class里去找,你会发现没有,这个时候,你把这个项目重新编译一下就会出来了。

这一章就到这里,下一章,将简单介绍一下linq to Entity的语法。

相关文章推荐

使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

一丶使用三层架构创建一个简单的MVC登录操作    1.首先,创建一个项目以及BLL层、DAL层、Entity层,如图一:                                      ...

asp.net MVC + linq to Entity简单教程(三)linq to Entity的基本操作

MVC搞明白之后,我们就要用一下linq to Entity了。它的基本语法与linq to sql很相似,只是在有一些地方有些区别,个人感觉最大的区别就是linq to sql有的一些功能,它没有,...

asp.net MVC + linq to Entity简单教程(一)MVC的建立与Entity的建立

最近在写一个项目,是一个用于手机浏览器浏览的一个校园办公的系统,主要是采用HTML5 + asp.net MVC进行编写的,平时在写程序的时候,很少用到MVC,一般都是用三层架构,因为MVC架构,生成...

asp.net MVC + linq to Entity简单教程(五)linq to Entity中join的使用以及子查询

多表联查,可以说是我们写sql语句时最常用的一种方法。一般采用,内联(join),左联(left join),右联( right join)的方式。这里不多说了,想必大家也都了解。这里我要说的一点是在...

asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用

在前面我们说到了,简单的列表显示,下面我们来介绍一下,一些其它的属性。   1, order by 的使用    在sql语句中,order by 语句是经常使用的。一般来说,它一般和top配对使...

asp.net MVC+ LINQ to Entities简单添加,修改,删除,显示,子查询

最近一个项目用到asp.net MVC来做,但是数据模型还是采用的是ado.net,在项目完结之时,自己就多看了一下MVC,发现 MVC很多人都在使用EF做为数据模型,自己也就试着写一下,我用EF做数...

Asp.Net MVC 模型(使用LINQ to SQL创建Model类)2

Asp.Net MVC 模型(使用LINQ to SQL创建Model类) - Part.2 这篇教程的目的是解释一种为ASP.NET MVC应用程序创建模型类的方法。在这篇教程中,你会学习到如何利...

ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

上一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag 下一节:ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用 源码下载:点我下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net MVC + linq to Entity简单教程(二)MVC的简单操作
举报原因:
原因补充:

(最多只允许输入30个字)