一个简单的.NET MVC 实例
久闻MVC的大名,只是一直没有去研究过。过去自己用的最多的还是.NET WebForm,比较习惯三层架构。由于最近公司将会使用到MVC框架做一些项目,所以自己也开始接触和学习。看了一些教程,大体搞清楚了M-V-C的大致意思,大致了解了下这个架构,但不得不承认有些具体的细节地方和WebFrm还是有差别的,这里只是简单做一个实例,让它跑起来。看了一些实例,多数都是用的是LinqToSql,这里用的是ADO的。感觉这样更顺手些,呵呵。
由于之前做过PHP程序,所以对于前台页面的展示方式还是容易理解的。只是MVC框架里,有些默认的路由规则(当然是可以自定义的),这个规则比较特别
好了,直接来个实例吧!
首先,新建一个空的MVC项目,如图,这里是MVC 2.0版
这里命名为"FirstMvc" ,自动添加好了项目的目录结构
在"Controller"目录下面新建一个控制器,命名为"MemberController.cs"
同时在"View"目录下添加相应的视图,这里添加一个Index
数据逻辑的操作基本上是在控制器里面完成的,这里就是在MemberController.cs实现。
为了更加真实,我们也在Model目录下面构建一个实体类,命名为Member.cs
好了,准备工作做好,就开始吧
前台——View
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><style type="text/css"> table{ width: 50%; border-top: 1px solid #e5eff8; border-right: 1px solid #e5eff8; margin: 1em auto; border-collapse: collapse;} td{ color: #678197; border-bottom: 1px solid #e5eff8; border-left: 1px solid #e5eff8; padding: .3em 1em; text-align: center;}</style><script src="http://www.cnblogs.com/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script><title>Index</title><script language="javascript" type="text/javascript"> $(document).ready(function () { $("#Button1").click(function () {var msg = "您好,用户" + $("#loginName").val() + ",\n"+ "请记好您的密码:" + $("#passWord").val() + ",\n"+ "你的用户编号为:" + $("#namelist").val(); alert(msg); }) })</script></head><body><div><h2> 完善下面的信息</h2><table id="MemberArea"><thead><tr><td colspan="2"><h3> 用户注册</h3></td></tr></thead><tbody><tr><td> 登录名</td><td><%=Html.TextBox("loginName")%></td></tr><tr><td> 用户名</td><td><%=Html.TextBox("userName")%></td></tr><tr><td> 密码</td><td><%=Html.Password("passWord")%></td></tr><tr><td> 真实姓名</td><td><%=Html.DropDownList("namelist")%></td></tr><tr><td colspan="2" align="center"><br /><input type="button" id="Button1" value="确定" /></td></tr></tbody></table></div></body></html>
后台——Controller
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Data;using System.Data.SqlClient;using System.Configuration;using FirstMvc.Models;//注意添加引用 namespace FirstMvc.Controllers{/// <summary>/// 第一个MVC架构实例/// 最近接触MVC,看到大多数教程采用/// LinqToSql,这里写一个ADO方式的/// Author:LuckyHu/// Date:2012-03-30/// </summary> public class MemberController : Controller {//// GET: /Menber/ //定义一些全局变量 string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection conn = null; SqlCommand cmd = null; SqlDataReader sdr = null; public ActionResult Index() { Models.Member member = new Models.Member(); sdr = GetData();int uid = 0;string name = ""; IDictionary<int, string> nameList = new Dictionary<int, string>();if (conn.State == ConnectionState.Closed) { conn.Open(); }try {while (sdr.Read()) { uid = int.Parse(sdr["uid"].ToString()); name = sdr["name"].ToString(); nameList.Add(uid, name); } }catch (SqlException ex) { Response.Write("<script> var ex = " + ex.ToString() + "; alert(ex);</script>"); }finally {if (conn.State == ConnectionState.Open) { conn.Close(); } } SelectList selectNameList = new SelectList(nameList, "Key", "Value");//构造一个下拉列表的键值对 ViewData["namelist"] = selectNameList;return View(); }/// <summary>/// 构造测试数据/// </summary>/// <returns></returns> public SqlDataReader GetData() { conn = new SqlConnection(connStr);string sql = "select * from users";if (conn.State == ConnectionState.Closed) { conn.Open(); }try { cmd = new SqlCommand(sql, conn); sdr = cmd.ExecuteReader(); }catch (SqlException ex) { Response.Write("<script> var ex = " + ex.ToString() + "; alert(ex);</script>"); }return sdr; } }}
实体层——Model
using System;using System.Collections.Generic;using System.Linq;using System.Web; namespace FirstMvc.Models{public class Member {//Fields private int uid_ = 0;private string name_ = "";private int jib_ = 0;private string email_ = "";private string qq_ = "";private DateTime rdage_;private DateTime ndate_; //Properties public int Uid_ {get { return uid_; }set { uid_ = value; } } public string Name_ {get { return name_; }set { name_ = value; } } public int Jib_ {get { return jib_; }set { jib_ = value; } } public DateTime Rdage_ {get { return rdage_; }set { rdage_ = value; } } public string Email_ {get { return email_; }set { email_ = value; } }public string Qq_ {get { return qq_; }set { qq_ = value; } } public DateTime Ndate_ {get { return ndate_; }set { ndate_ = value; } } //Construcution public Member() { }//Function public Member(int uid, string name, int jib, string email, string qq, DateTime rdage, DateTime ndate) {this.uid_ = uid;this.jib_ = jib;this.email_ = email;this.qq_ = qq;this.rdage_ = rdage;this.ndate_ = ndate; } }}
这里数据库访问使用的传统的ADO的,很多教程使用的LinqToSql的。
MVC框架和WebFrom之间有差异,可能刚开始不是很好理解,但是它们之间确实也有很多公用的地方。
这个时候,我们别忘了配置路由,在Global.asax文件中更改,
效果
实例下载
FirstMvc.rar
转载于:https://www.cnblogs.com/lucky_hu/archive/2012/03/31/2426231.html
一个简单的.NET MVC 实例相关推荐
- mvc 实例 php,来写一个简单的PHP MVC结构
MVC结构,其实就是三个Model,Contraller,View单词的简称,Model,主要任务就是把数据库或者其他文件系统的数据按照我们需要的方式读取出来.View,主要负责页面的,把数据以htm ...
- 一个简单的EJB-Session Bean实例
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一个简单 ...
- 一个简单的百度爬虫实例
一个简单的百度爬虫实例 最近在百度aistdio自学课程,看到一个基础课程的作业是爬取百度上<青春有你>选手信息,索性就跟着爬了一下,复习一下自己去年自学的已经忘得差不多的爬虫. 直接上代 ...
- 一个简单使用html的实例
一个简单使用html的实例 起始网页 点击上个网页的连接,跳转到 代码如下 网页1的代码 <html> <head> <title>一个实例</title&g ...
- 用javascript进行一个简单的机器学习小实例
虽然它可能不是机器学习传统选择的开发语言,但是JavaScript正在证明有能力完成这样的工作--即使它目前还不能与主要的机器学习语言Python竞争.在进一步学习之前,让我们做一下机器学习的介绍. ...
- 4.9一个简单的多任务内核实例
第四章第9节 本节描述了一个简单多任务内核的设计和实现方法,这个内核包括两个特权级3的用户任务和一个系统调用中断过程. 本节给出的内核实例由两个文件构成.一个是使用as86语言编制的引导启动程序boo ...
- swt包下载,swt包引入(一个简单的SWT程序实例及详解)
让我们从简单的 HelloWorld 应用程序开始. swt包下载可以在eclipse网站上下 进到下面这个地址里 http://www.eclipse.org/downloads/download. ...
- 一个简单的TTS文语转换实例
Text-to-Speech Tutorial 原文:来自SAPI5.1 文档 翻译:seasun / openpaper / google 论坛 日期:2007-10-21 本文介绍一个最基本的文语 ...
- src获取同级目录中的图片_一个简单的Python爬虫实例:百度贴吧页面下载图片
本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片. 1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容: 分析html ...
最新文章
- LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
- 洛谷P3960 列队(动态开节点线段树)
- altium designer 不自动清除回路 清除功能打开失效
- Chrome浏览器密码框自动填充的bug
- 实现点击到底部、顶部、指定div功能
- linux下镜像播放视频,linux下挂载iso镜像的方法
- VC 2010下安装OpenCV2.4.4
- selinux --chcon命令
- C# DataGridView 全选 反选
- Linux Shell脚本测试案例(一)
- Java将视频文件、图片文件转Base64编码
- 在Linux上安装和配置CSF防火墙
- [Linux]正则表达式和grep使用
- 解决 Chrome 使用高德地图卡顿
- 思维拓展:用java实现巧妙过桥问题
- 手机怎么设置腾达路由器后显示远端服务器,怎么用手机设置腾达(Tenda)路由器wifi密码?...
- 武汉为什么进不了互联网第一梯队?
- idea查看类层级hierarchy快捷键
- 网卡驱动学习五、hostapd 移植测试
- 研究方向确定:移动网络优化
热门文章
- 计算机专业女兵,陈豪2010《点解阿Sir》剧照
- c++ 基本排序算法学习
- c#中将集合写入文本_在C#中将记录插入MySQL数据库
- c#中textbox属性_C#.Net中的TextBox.Visible属性与示例
- 栈-顺序表(代码、分析、汇编)
- web安全---浏览器解析提交数据的过程
- c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...
- uva 11387——The 3-Regular Graph
- 279. 完全平方数 golang 动态规划
- linux操作系统之线程同步及互斥量