.net MVC入门
这里面之所以没有Sql语句但是也可以对数据库进行数据操作的原因就是Entity Framework。Entity Framework有三种模式,这里用的是Models模式。
网上有太多的.net MVC教程了,我就直接写一个我喜欢的版本得了。
先新建一个Models,起名为Movie.cs
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web; namespace Mvc.Models
{
public class Movie
{
public int ID { get; set; } //电影ID
public string Title { get; set; } //电影标题
public DateTime ReleaseDate { get; set; } //电影上映时间
public string Genre { get; set; } //电影类型
public decimal Price { get; set; } //电影票价格 } public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; } //DbSet是类型设置的意思
} }
这个Movie类里面的代码还是很好理解的吧,下面那个DbSet就是类型设置的意思,就是Movies是Movie类型的。ok,写完这个Model类之后,我们开始写controller,新建一个controller,命名为MovieController,但是步骤跟我来:

高级选项里这样,那个母版页你们自己加不加都行:

OK,加完这个Movie的controller之后,你看看Views文件夹是不是多了好多个View,现在其实就可以运行了,不过我们还要加一个数据库,在web.config里面这样写:
<connectionStrings>
<add name="MovieDBContext" providerName="System.Data.SqlClient" connectionString="Server=KTY;Database=shuyunquan;Uid=sa;Pwd=123456"/>
</connectionStrings>
这样写就行了,至于数据库的一些操作语句就不劳你费心了,已经全部封装好了.....
现在来运行:

在地址栏里面输入Movie,然后你就可以进行些许操作了....
现在,我突然想搜索,我想搜数据了,先来一个简单的,直接在url框进行搜索
把MovieController里面的Index方法修改成这样:
public ActionResult Index(string search)
{
var movies = from m in db.Movies select m;
if (!String.IsNullOrEmpty(search))
{
movies = movies.Where(s => s.Title.Contains(search));
} return View(movies);
}
其他的地方都不需要修改,我来讲讲这代码是什么意思。
Index方法带了一个参数,就是我想搜的东西的名字呗,下面的是一个LinQ语句,这个就当做sql sever语句来理解,就是把db.Movies里面的数据(等同于数据库里面的数据)全部取出来,给movies。然后下一个就是判断你输入的参数是不是空的,不是空或者NUll的话就执行语句,这个语句的意思呢其实就是Sql server查询的意思,这用到了lambda表达式,其实这一条语句等同于movies=select * from Movies where %search%
最后,返回那里改一下返回值。其他地方不需要修改什么,我们直接运行,然后自己新建几条数据方便查找:

我新建了三条数据,现在来查找:

我查了一下许嵩,就出来了第一条,这个只要是包含了“许嵩”字符的都可以。ok完成了。下面来个高级一点的啦~~
------------------------------------------------------我是高级内容-----------------------------------------------------
还是查询,不过呢,这次我要搞一个UI出来,我要根据类别和标题两部分来查询
MovieController里面的Index方法这样写:
public ActionResult Index(string movieGenre,string search)
{
var GenreList = new List<string>(); //定义一个list数组
var GenreQry = from d in db.Movies orderby d.Genre select d.Genre;//定义一个变量存放Genre值
GenreList.AddRange(GenreQry.Distinct()); //存到数组里面
ViewBag.movieGenre = new SelectList(GenreList); //存到viewBag里面传给view界面 var movies = from m in db.Movies select m;
if (!String.IsNullOrEmpty(search))
{
movies = movies.Where(s => s.Title.Contains(search));
}
if (!String.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(x => x.Genre == movieGenre);
} return View(movies);
}
添加了一些代码,在注释里面解释的差不多了,不过这里我有一个东东不明白,为什么GenreQry这个变量可以存这么多东西???
我们在Index.cshtml里面呢添加几个UI来
<p>
@Html.ActionLink("Create New", "Create")
@using (Html.BeginForm()) //搞了一个表单
{
<p>
Genre:@Html.DropDownList("movieGenre", "All") //下拉列表选择
Title:@Html.TextBox("search") //textbox
<input type="submit" value="搜索" /> //搜索button
</p>
} </p>
然后来预览一下吧,ctrl+shift+b编译,然后浏览器界面ctrl+F5刷新:

诺,想怎么筛选怎么筛选~
最后....真的是最后...来加一个校验机制吧~熊孩子或者熊大人不听话,偏偏新建的时候不按照格式来怎么办?多半是装的,打一顿就好了~咳咳~~当然是要加一个校验机制,来判断人输入的对不对,修改我们的Movie类:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; //添加这个引用
using System.Data.Entity;
using System.Linq;
using System.Web; namespace Mvc.Models
{
public class Movie
{
public int ID { get; set; } //电影ID
[StringLength(,MinimumLength=)] //这就是校验机制
public string Title { get; set; } //电影标题
public DateTime ReleaseDate { get; set; } //电影上映时间
[StringLength()]
public string Genre { get; set; } //电影类型
[Range(,)]
[DataType(DataType.Currency)] //类型是货币类型
public decimal Price { get; set; } //电影票价格 } public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
} }
就是大概这样的格式,但是这个例子我运行不成功,暂时不知道原因,暂留。
.net MVC入门的更多相关文章
- 25、ASP.NET MVC入门到精通——Spring.net-业务层仓储
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...
- 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱 ...
- asp.net mvc 入门资料
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC http://www.cnblogs.com/powertoolsteam/p/MVC_one.html 无废话MVC入门教程 ...
- ASP.NET MVC 入门8、ModelState与数据验证
原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/08/1305962.html ViewData有一个ModelState的属性,这是一个类型 ...
- ASP.NET MVC 入门系列教程
ASP.NET MVC 入门系列教程 博客园ASP.NET MVC 技术专题 http://kb.cnblogs.com/zt/mvc/ 一个居于ASP.NET MVC Beta的系列入门文章,有朋友 ...
- Spring MVC 入门教程示例 (一)
今天和大家分享下 Spring MVC 入门教程 首先还是从 HelloWorld web 工程开始 -------------------------- 1.首先创建一个Maven Web工程 ...
- Asp.net MVC入门视频教程
编程开发 > Asp.net视频教程 > Asp.net MVC入门视频教程 > 1.传统web处理方式和mvc处理方式 上传日期:2014-08-16 10:02:45 相关摘要 ...
- [转]ASP.NET MVC 入门8、ModelState与数据验证
ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的ModelState类型的字典集合.在进行数据验证的时候这个属性是比较有用的.在使用Html. ...
- 005.Getting started with ASP.NET Core MVC and Visual Studio -- 【VS开发asp.net core mvc 入门】
Getting started with ASP.NET Core MVC and Visual Studio VS开发asp.net core mvc 入门 2017-3-7 2 分钟阅读时长 本文 ...
- MVC入门教程
MVC入门系列教程-视频版本,已入驻51CTO学院,文本+视频学效果更好哦.视频链接地址如下: 点我查看视频.另外,针对该系列教程博主提供有偿技术支持,群号:226090960,群内会针对该教程的问题 ...
随机推荐
- Nginx+IIS分布式部署和负载均衡
1.IIS中部署2个网站 创建2个网站,端口分别为9001.9002 2.下载Nginx 可以进入Nginx官网进行下载,官网地址: http://nginx.org/,需要下载windows版的 3 ...
- RyuBook1.0案例二:Traffic Monitor项目源码分析
Traffic Monitor源码分析 从simple_switch_13.SimpleSwitch13控制器继承并开发 class SimpleMonitor13(simple_switch_13. ...
- kudu 存储引擎简析
本文由 网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...
- pycharm 调试 scrapy
http://blog.csdn.net/shijichao2/article/details/61940931
- 1.AKATSUKI
## 1.AKATSUKI - “晓”,日本漫画<火影忍者>及其衍生作品中的一个秘密组织. - 成立之初是为了给自己的国家带来和平. ## 2.团队成员 - 邱东宝 - 211606325 ...
- Linux内核分析作业四
扒开系统调用的三层皮 一.用户态.内核态和中断 一般现代CPU都有几种不同的指令级别 在高级别执行级别下,代码可以执行特权指令,访问任意的物理地址,称之为内核态 在相应的低指令执行级别下,代码的掌控范 ...
- C语言版本:单链表的实现(优化版本)
未优化版本:http://www.cnblogs.com/duwenxing/p/7569376.html slist.h #ifndef __SLIST_H__ #define __SLIST_H_ ...
- HTTP 和 HTTPS 直观上看哪里不一样了
1. 我在自己搭建的 HTTP 网站上进行登陆测试 填写账号和密码,账号:123456 ,密码:654321 (当然是乱填的,只为了看传输数据) 点击登录,用wireshark抓包看看传输的数据 2. ...
- Beta版本冲刺(五)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...
- MySQL基础(二):视图、触发器、函数、事务、存储过程
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 视图和上一篇学到的临时表搜索类似. ...