在ASP.NET中实现MVC模式(一)

【ASP.NET MVC4】第一课:初识ASP.NET MVC,创建第一个ASP.NET MVC项目 知识点:理解ASP.NET MVC 阅读详情

在ASP.NET中实现Model-View-Controller模式(一)

 

背景:

 

当利用ASP.NET创建Web应用程序时,基于程序的复杂性,必须把程序分割成不同的部分以减少代码的重复及减少日后变革时所引起的改动。

 

实现策略:

 

为了解释如何在ASP.NET中实现(MVC)模型-视图-控制器模式,以及说明将软件分离成模型、视图、及控制器角色的好处,在此以一个示例程序为例进行说明。这个示例程序是一个带有下拉框的单页程序,它的功能是显示数据库中的数据。如下图。

 

当用户在下拉框中选择了一个记录,并单击Submit按钮的时候,程序从数据库中搜索与选中记录相关的数据库记录,并以列表的形式显示出来。下面,将以三种不同的实现方式进行实现。

 

单页模式

 

在ASP.NET中有许多解决这个问题的办法,其中最简单也是最直接的办法就是把所有的代码都放到一个文件中,并起名为Solution.aspx,实现代码如下:

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.SqlClient" %>

<html>

  <head>

    <title>start</title>

    <script language="c#" runat="server">

     void Page_Load(object sender, System.EventArgs e)

     {

        String selectCmd = "select * from Recording";

 

        SqlConnection myConnection =

            new SqlConnection(

               "server=(local);database=recordings;Trusted_Connection=yes");

        SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd,

        myConnection);

 

        DataSet ds = new DataSet();

        myCommand.Fill(ds, "Recording");

           

        recordingSelect.DataSource = ds;

        recordingSelect.DataTextField = "title";

        recordingSelect.DataValueField = "id";

        recordingSelect.DataBind();

    }

        

    void SubmitBtn_Click(Object sender, EventArgs e)

    {  

       String selectCmd =

         String.Format(

         "select * from Track where recordingId = {0} order by id",

         (string)recordingSelect.SelectedItem.Value);

 

       SqlConnection myConnection =

         new SqlConnection(

           "server=(local);database=recordings;Trusted_Connection=yes");

 

        SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd,

          myConnection);

 

        DataSet ds = new DataSet();

        myCommand.Fill(ds, "Track");

 

        MyDataGrid.DataSource = ds;

        MyDataGrid.DataBind();

      }

</script>

</head>

<body>

   <form id="start" method="post" runat="server">

       <h3>Recordings</h3>

        Select a Recording:<br />

        <asp:dropdownlist id="recordingSelect" runat="server" />

        <asp:button runat="server" text="Submit" OnClick="SubmitBtn_Click" />

        <p/>

        <asp:datagrid id="MyDataGrid" runat="server" width="700"

         backcolor="#ccccff" bordercolor="black" showfooter="false"

         cellpadding="3" cellspacing="0" font-name="Verdana"

         font-size="8pt" headerstyle-backcolor="#aaaadd"

         enableviewstate="false" />

    </form>

   </body>

</html>

 

这个实现文件包含了模型、视图、控制器这三种角色,但是没有将它们分割为不同的文件或类。其中的视图对象用HTML实现,用一个数据绑定控件来显示从数据库返回的DataSet中的数据。模型角色在Page_Load 和 SubmitBtn_Click函数中实现。而控制器角色并没有显式的实现,而是由ASP.NET隐式实现。程序运行时,当用户发出页面的请求,页面随着用户的选择更新。

第3章: MMU Interval Notifier 区间通知器的核心原理⭐ 摘要:区间级内存通知机制分析 本文分析了Linux内核中区间级内存通知机制(mmu_interval_notifier)的设计原理与实现。该机制针对传统全局通知(mmu_notifier)存在的性能开销大、无法精确控制等问题,通过引入区间树(Interval Tree)实现精确匹配,仅当内存变化与注册区间重叠时才触发回调。核心优势包括:1)O(log n + k)的高效查找性能;2)支持独立管理各内存区间;3)实现高并发处理不同区间的失效事件。 阅读详情

相关推荐

基因家族Motif 分析

MEME

hgz2020的博客 6317

ASP.NET下MVC设计模式的实现

  ASP.NET是微软最新推出的新型体系结构.NET框架的一部分,它为构造新一代动态网站和基于网络的分布式应用提供了强有力的支持。与以前的 Web 开发模型相比,ASP.NET 提供了许多重要的优点例如: 简易性;安全性;可管理性等。而且与基于过程的ASP页面技术相比,面向对象技术在ASP.NET中得到了完全实现。用传统ASP技术建立的Web应用实例中,在页面中同时实现显示,业务逻辑和流程控制,

wrclub的专栏 2529

RAG在医药行业为什么80%都翻车了?

这篇文章不是要劝你别做RAG,而是把坑说清楚。医药行业有它的特殊性——监管压力、专业术语密度、多语言混排、文档结构复杂——这些因素叠加在一起,让标准RAG教程里的那套方法论几乎直接失效

qq_31808385的博客 635

MVC模式及其在ASP.NET中的实现

1. 问题 许多计算机系统的用途都是从数据存储检索数据并将其显示给用户。在用户更改数据之后,系统再将更新内容存储到数据存储中。因为关键的信息流发生在数据存储和用户界面之间,所以您可能倾向于将这两部分绑在一起,以减少编码量并提高应用程序性能。但是,这种看起来自然而然的方法有一些问题。一个问题是,用户界面的更改往往比数据存储系统的更改频繁得多。将数据和用户界面这两部分耦合在一起带来的另一个问题是,...

weixin_34185560的博客 176

树莓派4B+WebRTC实现远程监控:5步搞定公网视频流传输(含Node.js配置)

本文详细介绍了如何利用树莓派4B和WebRTC技术,通过5个关键步骤搭建低延迟、高隐私的远程监控系统。重点阐述了WebRTC点对点传输相较于传统方案的优势,并提供了包含Node.js信令服务器配置、树莓派视频流捕获与推送、以及移动端自适应观看页面的完整实现方案,帮助用户实现公网视频流传输。

websocket5live的博客 292

OWASP-ZAP扫描器的使用

目录 OWASP-ZAP 更新 代理 目录扫描 主动扫描(Active Scan) 扫描结果 生成报告 OWASP-ZAP OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护。它可以帮助你在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。 也可以说ZAP是一个中间人代理。它能够获取你对Web应用程序发出的所有请求以...

谢公子的博客 2万+

4.创建第一个MVC项目

第2章          Hello MVCWorld   内容摘要 初始化开发环境创建第一个ASP.NETMVC应用程序控制器、活动和视图简单数据访问   本章我们将引入贯穿本书第1部分的示例程序——GuestBook。通过GuestBook,用户向网站中发布他们的名字以及消息,同时可以浏览其他用户发布的消息。虽然GuestBook比较简单,但我们将用它学习ASP.NET MVC的

sdtsfhh的专栏 2万+

ADAMS软件二次开发:ADAMS软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件应用程序之间进行交互的接口。在ADAMS软件中,API提供了与软件内部功能直接交互的能力,使用户能够通过编写自定义代码来扩展软件的功能,实现自动化操作或集成到其他系统中。ADAMS软件的API主要基于C++和Python,允许用户通过这些编程语言来访问和控制ADAMS的模型、仿真和分析功能。API接口的使用,需要对编程语言有一定的了解,同时也需要熟悉ADAMS软件的基本操作和模型结构。

kkchenjj的博客 1863

MVC架构在Asp.net中的应用和实现

MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理、优缺点以及MVC所能为Web应用带来的好处。并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现。旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用。 关键字:MVC、视图、控制器、模型、Asp.net Application and...

weixin_30598225的博客 339

SST专题(2-4)MMC-SST 输入级的环流分析

本文分析了模块化多电平换流器(iMMC-SST)的输入级等效电路、子模块电容电压波动特性及环流抑制机理。研究表明:1)子模块电容电压波动包含基频和二倍频分量,与传统换流器相比波动幅值更大;2)环流主要由子模块电容电压波动在桥臂电感上激发的偶次谐波电流构成,呈频率越高幅值越小的特性;3)可通过增大桥臂电感或采用调制策略叠加抑制电压分量来有效控制环流。研究结果为MMC系统设计提供了理论依据。

嵌入式老牛的博客 585

机器学习实战5-天气预测系列:利用数据集可视化分析数据,并预测某个城市的天气情况

大家好,我是微学AI,最近天气真的是多变啊,忽冷忽热,今天再次给大家带来天气的话题,机器学习实战5-天气预测系列,我们将探讨一个城市的气象数据集,并利用机器学习来预测该城市的天气状况。该数据集包含年平均温度和湿度等信息。

微学AI的博客 1万+

ASP.NET MVC框架下使用MVVM模式

对于asp.net mvc开发人员或爱好者来说,MVVM模式可能你不是很了解。本来这个模式就是针对WPF和Silverlight开发提出的开发模式。 大概一年前,我当时迷恋Silverlight时,学习了MVVM一段时间,没想到现在可以在MVC用到。 我看了下之前有两篇文章介绍MVVM的。希望可以对MVVM不了解的人有点帮助。我也是好久没用了,生疏了都。 http://www.cnblo...

weixin_33827590的博客 579

手把手教你学Simulink--基于Simulink的开关磁阻电机电流斩波控制仿真建模

特点:定子和转子均由普通硅钢片叠压而成,没有永磁体或绕组在转子上。工作原理:利用转子旋转时不同位置的磁阻变化产生转矩。控制挑战:由于SRM的高度非线性和磁饱和效应,需要复杂的控制算法来优化性能。利用Simscape Electrical中的模块构建SRM的物理模型,配置参数如电阻、电感等。matlab深色版本% 添加SRM电机模块根据实际需求调整电机参数。通过上述步骤,我们简要介绍了如何基于Simulink进行开关磁阻电机的电流斩波控制仿真建模。

MHD0815的博客 306

ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式

原文地址:ASP.NET MVC - Using Post, Redirect, Get Pattern原文作者:matthaw 本文地址:ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式译者:Q.Lee.lulu ASP.NET MVC模式通过重新引进已经丢失的,或者至少已经没有使用很多年的模式,使其本身趋向更简单和“真实”的 HTTP体验(原文:The ...

weixin_33835103的博客 90

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Asp.net中的MVC设计模式中的表单传值的方式

Asp.net中的MVC设计模式中的表单传值的两种方式:      方式1: 通过form表单传值                                   方式2:通过HtmlHelper类来进行表单的传值:                   上面的代码进行运行后的界面效果是:

qinMengxing的专栏 1354

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【ASP.NET】手把手创建一个ASP.NET项目以及MVC模式的介绍

本文演示如何在 Visual Studio 工具上创建一个 ASP.NET 项目以及 MVC 模式下的项目文件的介绍。相信大家看完就会对 ASP.NET 框架有一个初步的认识。这部分介绍 ASP.NET 项目 MVC 模式下的文件信息 以上就是 ASP.NET项目的创建演示和MVC模式的介绍,希望对大家有所帮助。

好学若饥,谦卑若愚。 1万+

ASP.NET MVC快速入门(一)

MVC是当前比较流行的WEB程序开发模式之一,ASP.NET MVC是.Net对MVC的一种实现。本文主要以一些简单的小例子,简述ASP.NET MVC的简单应用,仅供学习分享使用,如有不足之处,还请指正。

绳锯木断,水滴石穿,专心写文,无问西东!!! 8786

ASP.NET——MVC编程

如何使用 C# 中的 MVC 模式去开发一个简单的 Web 应用程序,将业务逻辑、用户界面和请求处理清晰地分离,提高开发效率和代码的可维护性。根据需要,可以进一步扩展和优化该示例,添加更多的功能和页面。

2401_84642440的博客 2348

ASP.NET MVC零基础自学篇:(一)ASP.NET MVC简介

ASP.NET MVC 教程 ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 ASP.NET 支持三种不同的开发模式: 1.Web Pages(Web 页面) 2.MVC(Model View Controller 模型-视图-控制器) 3.Web Forms(Web 窗体)。 MVC 编程模式 MVC 是三种 ASP.NET 编程模式...

灵活大胖子HDG 的博客 3433

【ASP.NET学习】ASP.NET MVC基本编程

在 Web.config 文件中,可以定义与应用程序有关的各种设置,包括连接字符串、验证模式、HTTP 模块、错误处理、会话状态、缓存设置等等。在这个文件夹里存放的是用于呈现数据模型的视图页面,可以包含 HTML、CSS、JavaScript等内容,用于呈现和渲染用户界面。由于常用字体可能会在用户的系统中缺少,因此,网站通常会将自定义字体文件包括在 Fonts 文件夹中,以确保字体在用户设备中正确地显示。它是轻量级的、可测试性高的框架,同时整合了所有已有的 ASP.NET 特性,比如母版页、安全性和认证。

杰西笔记 1829

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

Blue 4512

C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别。哦我的上帝啊!这可真糟糕

微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。 当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前的ASP.NET应用程序(主要是Web Forms)。然后,为了更加混淆事情,他们后来添加了“ASP.NET We...

菜鸟变凤凰 2450
上一篇: 在ASP.NET中实现MVC模式(二)
下一篇: 在ASP.NET中实现MVC模式(五)
mutou23
博客等级 码龄24年 3粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值