zoukankan      html  css  js  c++  java
  • 03-23 MVC框架(以查询、删除为例)

    1、MVC的定义:

    MVC(Model-View-Controller,模型-视图-控制器)是用于将应用程序粉好吃呢过如下3个主要方面的体系结构模式:

    模型(Model):一组类和业务规则,类用于描述正在处理的数据,业务规则用于说明如何修改和操纵这些数据。

    视图(View):应用程序的用户界面(UI)。

    控制器(Controller):一组类,用于处理来自用户,整个应用程序流以及特定应用程序逻辑的通信。运行时,默认运行HomeControllers.

    该模式常用于Web编程。

    2、约定胜于配置  

    本质是指:当我们知道如何创建应用程序,把该经验应用到架构中,这样就不用在配置所有的内容了。

    查看是应用程序运行的如下3个核心目录,我们可以看到这个思想在ASP.NETMVC中的应用情况:

    (1)Controllers控制器:

    (2)Models

    (3)Views

    3、思路:

    首先,客户面对的是Control层

    每个控制器对应一个文件夹,每个视图对应一个页面

    控制器调用模板,再返回到控制器

    4、各个写法的区别:

    <%# Eval("数据绑定的一列数据") %>
    <%=动态数据(一条数据) %>

    <% 输入某一段代码%>

    不需要再web.config文件中设置这些文件夹的名称——只需要按照约定将它们放在期望的位置即可。

    第一步:新建——项目:选择“框架环境4.5版本”

    image

    项目建立完成后,就会发现项目资源管理器中出现:

    image

    第二步:Controllers右键,添加“控制器类”,也可以使用快捷键(Ctrl+M,Ctrl+C),

    image

    控制器名称可以更改,但Controller不可以更改(约定胜于配置),选择空模板(建议使用)。

    clip_image002

    第三步:在Models层添加类(写增删改查方法)和Linq to SQL类

    image

    第四步:Models层(数据访问层):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace MvcApplication1.Models
    {
        public partial class bumen
        {
            private DataClasses1DataContext _Context = new DataClasses1DataContext();
            //查询数据库表
            public List<bumen> Select()
            {
              //  List<bumen> list = new List<bumen>();
                var query = _Context.bumen.ToList();
                return query.ToList();
            }
            //按主键查询
            public bumen Select(int id)
            {
               // List<bumen> list = new List<bumen>();
                var query = _Context.bumen.Where(p=>p.code==id);
                if (query.Count() > 0)
                {
                    return query.First();
                }
                else
                {
                    return null;
                }
            }
            //按照主键删除
            public void Delete(int id)
            {
                var query = _Context.bumen.Where(p=>p.code==id);
                if(query.Count()>0)
                {
                    bumen bm = query.First();
                    _Context.bumen.DeleteOnSubmit(bm);
                    _Context.SubmitChanges();
                }
            }
        }
    }
    第五步:HomeControllers层(用户面对的是控制层):
    using MvcApplication1.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace MvcApplication1.Controllers
    {
        //MVC默认执行Home控制器
        public class HomeController : Controller
        {
            //控制器默认先走Home,而不是其他控制器
            //约定优于配置
            public ActionResult Index()
            { 
            //把数据从Model层找出
                //需要引用Models层的命名空间
                List<bumen> list = new bumen().Select();
                //再把数据传到view
                ViewData["list"] = list;
                //返回view给客户
                return View();       
            }
            public ActionResult Delete(int id)
            {
                new bumen().Delete(id);
                return RedirectToAction("Index");
            }
        }
    }

    第六步:Views层(界面模板):

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    <%@import Namespace="MvcApplication1.Models" %>>//引用Models层的命名空间
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <style type="text/css">//设置表头和行数据的格式
            .head {
            background-color:navy;
            color:white;
            font-weight:bold;
            text-align:center;
            }
            .item {
            background-color:#e0e0e0;
            color:black;
            text-align:center;      
            }
    
        </style>
    </head>
    <body>
        <div>
            <table width="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="black">
                <%-- 表头 --%>
                <tr class="head">
                     <td>姓名</td>
                     <td>职能</td>
                     <td>CEO</td>
                     <td>操作</td>
                </tr>
                 <%-- 行数据 --%>
                <% 
                    List<bumen> list = ViewData["list"] as List<bumen>;
                  foreach(bumen data in list)  { %>        
                 <tr class="head">
                     <td><%=data.name %></td>
                     <td><%=data.zhineng %></td>
                     <td><%=data.ceo %></td>
                     <td><a href="Home/Delete?id=<%=data.code %>">删除</a></td>
                </tr>
                <%} %>
            </table>
        </div>
    </body>
    </html>

    查询显示:

    image

    删除操作(一行):【以管理部--负责运营管理和调控--红烧肉】为例:

    image

    注意:Controllers默认执行HomeController,如果当前执行的不是HomeController,而是直接DemoController,那么浏览器会直接弹出:

    image

    这时,需要将Demo文件夹及Demo下的Index(Action)写上,然后跳转页面即可。

    image

  • 相关阅读:
    UVa 10118 记忆化搜索 Free Candies
    CodeForces 568B DP Symmetric and Transitive
    UVa 11695 树的直径 Flight Planning
    UVa 10934 DP Dropping water balloons
    CodeForces 543D 树形DP Road Improvement
    CodeForces 570E DP Pig and Palindromes
    HDU 5396 区间DP 数学 Expression
    HDU 5402 模拟 构造 Travelling Salesman Problem
    HDU 5399 数学 Too Simple
    CodeForces 567F DP Mausoleum
  • 原文地址:https://www.cnblogs.com/xiaoqingshe/p/4359280.html
Copyright © 2011-2022 走看看