《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)

开发环境为VS 2013 Ultimate,首先新建一个名为Guestbook的MVC项目,具体过程就不表啦,因为我比较懒 哈哈!

一、默认模板分析(开发工具会自动创建一个可以运行的项目):

1.控制器:继承于Controller基类的类,其中的方法(称为动作即Action)对应于某个URL。

 1 namespace Guestbook.Controllers
 2 {
 3     public class HomeController : Controller // 继承于Controller
 4     {
 5         public ActionResult Index()
 6         {
 7             return View();
 8         }
 9
10         public ActionResult About()
11         {
12             //ViewBag本质上是一个字典,
13             //它提供了一种存储数据的方式,这些数据随后能够在视图中进行访问
14             ViewBag.Message = "Your application description page.";
15
16             return View();//指示应该渲染的视图
17         }
18
19         public ActionResult Contact()
20         {
21             ViewBag.Message = "Your contact page.";
22
23             return View();
24         }
25     }
26 }            

2.注册路由:RegisterRoutes方法定义一个将URL模式映射到控制器或动作的路由。

 1 namespace Guestbook
 2 {
 3     public class RouteConfig
 4     {
 5         public static void RegisterRoutes(RouteCollection routes)
 6         {
 7             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");//框架不必处理含有.axd扩展文件名的任何路径
 8
 9             routes.MapRoute(
10                 name: "Default",//路由名
11                 url: "{controller}/{action}/{id}",//URL模式
12                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//路由默认值
13             );
14         }
15     }
16 }

二、Code First方式创建SQL Server数据库:

1.添加模型:即数据库中对应的数据表

 1 namespace Guestbook.Models
 2 {
 3     public class GuestbookEntry
 4     {
 5         public int Id { get; set; }
 6         public string Name { get; set; }
 7         public string Message { get; set; }
 8         public DateTime DateAdded { get; set; }
 9     }
10 }

2.使用ORM工具--Entity Framework与数据库交互:

  1).添加一个继承于DbContext基类的类:

 1 namespace Guestbook.Models
 2 {
 3     public class GuestbookContext:DbContext
 4     {
 5         public GuestbookContext()
 6         {
 7         }
 8
 9         public DbSet<GuestbookEntry> Entries { get; set; }
10     }
11 }

  该上下文类同时定义了一个单独的属性Entries,是将其作为在GuestbookEntries表(EF自动创建的表为实体模型名的复数)中查询数据的集合。

  2).在Web.config文件中添加数据库连接字符串:

<add name="GuestbookContext" connectionString="Data Source=.;Initial Catalog=Guestbook;Integrated Security=True"
      providerName="System.Data.SqlClient" />

  注意:1.连接字符串的名字要和上下文类的名字相同,否则要将字符串的名字传递到上下文类的构造方法中;

      2.此时运行程序并不会创建数据库!因为这一点折腾了蛮久,后来才发现在对数据表发生操作行为的时候数据库才会被自动创建。哎,菜鸟就是菜鸟。。。

三、珍珠奶茶(增删改查)--操作数据:

  1.选择下图框中选项会自动创建CRUD操作方法和相关的视图文件:

  2.选择模型和上下文类:

  3.此时运行程序输入网址如下所示:

  4.上图显示GuestbookEntries表中的数据列表,因为暂时还没有添加数据所以列表为空,只有一个Create New链接;不过现在数据库和对应的表应创建,如下图:

  5.点击Create New链接,跳转到新增页面,填写对应内容后提交:

  提交成功后,重新跳转到列表页面,可以看到每列数据均对应编辑和删除操作,是不是好强大!

下篇试着分析自动生成的代码,to be continued...

时间: 2024-10-12 16:03:58

《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)的相关文章

DuiLib学习笔记2——写一个简单的程序

我们要独立出来自己创建一个项目,在我们自己的项目上加皮肤这才是初衷.我的新建项目名为:duilibTest 在duilib根目录下面有个 Duilib入门文档.doc 我们就按这个教程开始入门 首先新建一个win32项目 去DuiLib根目录,把目录下DuiLib文件夹拷贝到新建项目的根目录.再把这个项目添加进我们解决方案中. 从教程里面把以下代码粘贴到我们项目的stdafx.h中 // Duilib使用设置部分 #pragma once #define WIN32_LEAN_AND_MEAN

ArcGIS API for JavaScript 学习笔记 (一) --第一个WebGIS应用程序

说明:本地部署后续我会尝试. 简单介绍: 开发环境是Visual Studio 2012,因为它为所有的.aspx文件..htm文件以及外部的.js文件提供了IntelliSense(智能提示),相当于其他软件的代码自动补全功能,非常方便.接下来是我的第一个Javascript API 应用程序.ESRI在其arcgis online中提供了在线的ArcGIS API for JavaScript,在web应用中直接引用即可,无需下载安装:当然也可以下载API,然后部署到自己的web服务器,在这

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: <input name="UserName&quo

一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

ASP.Net开发基础温故知新学习笔记

申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在HTML中为表单元素设置name: ③元素id是给Dom用的,name才是提交给服务器用的: (2)请求处理响应模型: ①浏览器发出访问请求→②服务器处理访问请求并返回HTML→③浏览器解析HTML并显示页面 (3)GET与POST的区别:(★★★→重点) ①GET通过URL传值,而POST通过HTT

机器学习实战学习笔记(一)

1.k-近邻算法 算法原理: 存在一个样本数据集(训练样本集),并且我们知道样本集中的每个数据与其所属分类的对应关系.输入未知类别的数据后将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似(最近邻)的k组数据.然后将k组数据中出现次数最多的分类,来作为新数据的分类. 算法步骤: 计算已知类别数据集中的每一个点与当前点之前的距离.(相似度度量) 按照距离递增次序排序 选取与当前点距离最小的k个点 确定k个点所在类别的出现频率 返回频率最高的类别作为当前点的分类 py

MVC系列——MVC源码学习:打造自己的MVC框架(四:自定义视图)

前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾.对于这个系列,通过学习源码,博主也学到了很多东西,在此还是把博主知道的先发出来,供大家参考. 本文原创地址:http://www.cnblogs.com/landeanfen/p/6019719.html MVC源码学习系列文章目录: MVC系列——MVC源码学习:打造自己的MVC框架(一) MVC

jQuery学习笔记--JqGrid相关操作 方法列表(上)

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选中行:$("#jqGrid