MVC

 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
框架模式可以用下图表示:
 
下面一段代码用MVC简单写的数据库的增删改查(aspx):
 
Controllers
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DATAModels;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            ViewBag.data = new DATA().select();
            return View();
        }

        public ActionResult xiugai(string id)//这里的id对应路由中的id不能乱改
        {
            
            student s = new DATA().select(id);
            ViewBag.data = s;//携带数据显示到视图中
            return View();
        }

        public ActionResult Update(string sno, string sname,string ssex,DateTime sbirthday, string class1)
        {
            new DATA().Update(sno,sname,ssex,sbirthday,class1);

            return RedirectToAction("Index");//跳转到Index视图
        }

        public ActionResult zengjia()
        {
            return View();//增加视图
        }

        public ActionResult ADD(string sno, string sname, string ssex, DateTime sbirthday, string class1)
        {
            try
            {
                new DATA().Insert(sno, sname, ssex, sbirthday, class1);
                return RedirectToAction("Index");
            }
            catch (Exception)
            {

                return RedirectToAction("chucuo", "Home");//跳转到Home控制器下的chucuo动作
            }
        }

        public ActionResult shanchu(string id)
        {
            try
            {
                new DATA().delete(id);
                return RedirectToAction("Index");
            }
            catch (Exception)
            {

                return RedirectToAction("chucuo","Home");
            }

        }
        public ActionResult chucuo()
        {
            return View();
        }

        public ActionResult tiaozhuan()
        {
            return RedirectToAction("Index");
        }

        public ActionResult jingzhunchaxun(string id)
        {
            
            ViewBag.data=new DATA().lianjie(id);
            ViewBag.datac = new DATA().jingzhuncha(id);
            return View();
        }
    }
}

Models

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

namespace DATAModels
{
    public class DATA
    {
        private DataLianXiSQLDataContext Context = new DataLianXiSQLDataContext();

        public List<student> select()//查询学生信息
        {
            List<student> list = Context.student.ToList();

            return list;
        }

        public student select(string sno)
        {
            int sn=int.Parse(sno);
            var s = Context.student.Where(a=>a.Sno==sn);//按Sno查询学生信息
            if (s.Count()>0)
            {
                return s.First();//返回序列中的第一个元素
            }
            return null;
        }

        public void Update(string sno, string sname, string ssex,DateTime sbirthday,string class1)
        {
            var query = Context.student.Where(p => p.Sno == int.Parse(sno));
            if (query.Count() > 0)
            {
                student data = query.First();
                data.Sname = sname;
                data.Ssex = ssex;
                data.Sbirthday = sbirthday;
                data.Class = class1;
            }
            Context.SubmitChanges();//修改
        }

        public void Insert(string sno, string sname, string ssex, DateTime sbirthday, string class1)
        {
            int sn = int.Parse(sno);
            student s = new student();
            s.Sno = sn;
            s.Sname = sname;
            s.Ssex = ssex;
            s.Sbirthday = sbirthday;
            s.Class = class1;

            Context.student.InsertOnSubmit(s);//插入
            
            Context.SubmitChanges();
        }

        public void delete(string sno)
        {
            var s = Context.student.Where(p=>p.Sno==int.Parse(sno));
            if (s!=null)
            {
                student stu = s.First();
                Context.student.DeleteOnSubmit(stu);//删除
                Context.SubmitChanges();
            }
        }

        public List<score> lianjie(string sno)
        {
            List<score> list=new List<score>();
            var query = Context.score.Where(p=>p.Sno==int.Parse(sno));
            if (query!=null)
            {
                foreach (var item in query)
                {
                    list.Add(item);
                }
            }

            return list;
        }
        public List<course> jingzhuncha(string sno)
        {
            List<score> list = new List<score>();
            var query = Context.score.Where(p => p.Sno == int.Parse(sno));
            if (query != null)
            {
                foreach (var item in query)
                {
                    list.Add(item);
                }
            }
            List<course> lico = new List<course>();
            for (int i = 0; i < list.Count; i++)
            {
                var cn = Context.course.Where(c=>c.Cno==list[i].Cno);
                if (cn!=null)
                {
                    lico.Add(cn.First()); 
                }                
            }

            return lico;
        }

    }
}

 

Views:

    Index

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="DATAModels" %>
<!DOCTYPE html>

<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style>
        .tab {
        width:100%;
        
        column-rule-color:#141313;
        column-rule-style:solid;
        text-align:center;
        }
        .tr1 {
        background-color:#fff;
        
        }
         .tr2 {
        background-color:#c3b7b7;
        
        }
         .tr {
        background-color:#ffffcc;
        
        }
    </style>
</head>
<body>
    <div>
        <table class="tab" border="1">
            <tr class="tr">
                <td>学号</td>
                <td>姓名</td>
                <td>性别</td>
                <td>生日</td>
                <td>班级</td>
                <td></td>
                <td></td>                
            </tr>
            <% 
                List<student> list = ViewBag.data as List<student>;
                int i = 0;
                foreach (student s in list)                  
                {
                    if(i%2==0)
                    {
                    %>
             <tr class="tr1">
                <td><%=s.Sno %></td>
                <td><a href="Home/jingzhunchaxun/<%=s.Sno %>"><%=s.Sname %></a></td>
                <td><%=s.Ssex %></td>
                <td><%=s.Sbirthday.Value.ToLongDateString().ToString() %></td>
                <td><%=s.Class %></td>
                <td>
                    <a href="/Home/xiugai/<%=s.Sno %>">修改</a>
                </td>
                <td>
                    <a onclick="return confirm('确认要删除<%=s.Sname.ToString() %>吗?')" href="Home/shanchu/<%=s.Sno %>">删除</a>
                </td>
            </tr>
                   <%}else { %>
            <tr class="tr2">
                <td><%=s.Sno %></td>
                <td><a href="Home/jingzhunchaxun/<%=s.Sno %>"><%=s.Sname %></a></td>
                <td><%=s.Ssex %></td>
                <td><%=s.Sbirthday.Value.ToLongDateString().ToString() %></td>
                <td><%=s.Class %></td>
                <td>
                    <a href="/Home/xiugai/<%=s.Sno %>">修改</a>
                </td>
                <td>
                    <a onclick="return confirm('确认要删除<%=s.Sname.ToString() %>吗?')" href="Home/shanchu/<%=s.Sno %>">删除</a>
                </td>
            </tr>
            
            <%} %> 
                    
                    <%
                    i++;
                }    
            %>

        </table>
        <div>
            <form id="f2" name="f2" action="Home/zengjia" method="post">
                <input type="submit" value="增加" />
            </form>
        </div>
    </div>
</body>
</html>

zengjia

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="DATAModels" %>
<!DOCTYPE html>

<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>zengjia</title>
</head>
<body>
    <div>
        <form id="f1" name="f1" method="post" action="/Home/ADD">
        <ul>      
               
            <li><input type="text" name="sno" /></li>
            <li><input type="text" name="sname" /></li>
            <li><input type="text" name="ssex"  /></li>
            <li><input type="text" name="sbirthday" /></li>
            <li><input type="text" name="class1"  /></li>
            <li><input type="submit" value="更新" /></li>
            
        </ul>
        </form>
        <form id="f2" name="f2" action="/Home/tiaozhuan" method="post">
            <input type="submit" value="回到主页" />
        </form>
    </div>
</body>
</html>

xiugai

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="DATAModels" %>
<!DOCTYPE html>

<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>xiugai</title>
</head>
<body>
    <div>
        <form id="f1" name="f1" method="post" action="/Home/Update">
        <ul>      
            <%student s=ViewBag.data as student;
              if(s!=null)
              {
                   %>      
            <li><input readonly="readonly" type="text" name="sno" value="<%=s.Sno %>"/></li>
            <li><input type="text" name="sname" value="<%=s.Sname %>" /></li>
            <li><input type="text" name="ssex" value="<%=s.Ssex %>" /></li>
            <li><input type="text" name="sbirthday" value="<%=s.Sbirthday %>" /></li>
            <li><input type="text" name="class1" value="<%=s.Class %>" /></li>
            <li><input type="submit" value="更新" /></li>
            <%} %>
        </ul>
        </form>
        <form id="f2" name="f2" action="/Home/tiaozhuan" method="post">
            <input type="submit" value="回到主页" />
        </form>
    </div>
</body>
</html>

chucuo

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>chucuo</title>
</head>
<body>
    <div>
        <h1>出错了!</h1>
        <form action="Home/tiaozhuan" method="post">
            <input type="submit" value="回到主页" />
        </form>
    </div>
</body>
</html>

 

 
posted @ 2015-07-06 21:15  九省巡按  阅读(191)  评论(0编辑  收藏  举报