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

  • 相关阅读:
    知识扩充:企业博客、MetaWeblog 和 XMLRPC
    test
    OSCHINA Android 客户端 手机相关软件 开源中国
    Android Maven Plugin
    Sending Content to Other Apps
    android test
    my first android test
    用java程序向wordpress发布文章
    my first android test
    android test
  • 原文地址:https://www.cnblogs.com/xiaoqingshe/p/4359280.html
Copyright © 2011-2022 走看看