我的第一个MVC4程序
InputExtensions 方法解释
http://blog.csdn.net/cnceohjm/article/details/8936669
https://msdn.microsoft.com/zh-cn/library/system.web.mvc.html.inputextensions_methods%28v=vs.118%29.aspx
实体
public class MovieModels
{
} public class MovieDB
{
public int Id { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
/// <add name="MovieDbContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>配置文件中的需要注意name,需要一样不区分大小写
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
Controller
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
//
// GET: /Movies/ public ActionResult Index(string searchTitle)//也view名称一样,searchTitle必须与前台查询的名称相同
{
var titleQuery = from d in db.Movies orderby d.Title select d.Title;
ViewBag.SearchTitle = new SelectList(titleQuery);//查询,SearchTitle必须与前台查询的名称相同,否则报错。 var movies = from m in db.Movies select m;
if (!string.IsNullOrEmpty(searchTitle))
{
return View(movies.Where(x => x.Title == searchTitle));
} return View(db.Movies.ToList());
} public ActionResult Delete(int id = )
{
MovieDB movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
} [HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
MovieDB movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
} public ActionResult Details(int id = )
{
MovieDB movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
} return View(movie);
} //
// GET: /Movies/Create public ActionResult Create()//点击create时触发的事件,返回一个空页面
{
return View();
} [HttpPost]
public ActionResult Create(MovieDB movie)//保存数据
{
if (ModelState.IsValid)
{
db.Movies.Add(movie);
db.SaveChanges();
return RedirectToAction("Index");
} return View(movie);
} //GET:/Movies/Edit/5
public ActionResult Edit(int id = )
{
MovieDB movie = db.Movies.Find(id); if (movie == null)
{
return HttpNotFound();
} return View(movie);
} //POST: /Movies/Edit/5
[HttpPost]
public ActionResult Edit(MovieDB movie)
{
if (ModelState.IsValid)
{
db.Entry(movie).State = System.Data.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
} return View(movie);
} }
Index.cshtml
@model IEnumerable<MVC4Movies.Models.MovieDB>//项目名称MVC4Movies
@{
ViewBag.Title = "Index";
} <h2>Index</h2> <p>
@Html.ActionLink("Create New","Create")
</p>
<form method="get">
<p>
Genre:@Html.DropDownList("SearchTitle", "all")
<input type="submit" value="search" />
</p>
</form>
<table>
<tr>
<th>@Html.DisplayNameFor(model => model.Id)</th>
<th>@Html.DisplayNameFor(model => model.Title)</th>
<th>@Html.DisplayNameFor(model => model.Director)</th>
<th>@Html.DisplayNameFor(model => model.Date)</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Director)
</td>
<td>
@Html.DisplayFor(modelItem => item.Date)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id})|
@Html.ActionLink("Details", "Details", new { id = item.Id })|
@Html.ActionLink("Delete", "Delete", new {id = item.Id })
</td>
</tr>
}
</table>
Edit.cshtml
@model MVC4Movies.Models.MovieDB
@{
ViewBag.Title = "Edit";
} <h2>Edit</h2> @using (Html.BeginForm()) {
@Html.ValidationSummary(true) <fieldset>
<legend>Movie</legend> @Html.HiddenFor(model => model.Id) <div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Director)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Director)
@Html.ValidationMessageFor(model => model.Director)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Date)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Date)
@Html.ValidationMessageFor(model => model.Date)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
} <div>
@Html.ActionLink("Back to List", "Index")
</div> @section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Details.cshtml
@model MVC4Movies.Models.MovieDB
@{
ViewBag.Title = "Details";
} <h2>Details</h2> <fieldset>
<legend>Movie</legend> <div class="display-label">
@Html.DisplayNameFor(model => model.Title)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Title)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Director)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Director)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Date)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Date)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit", "Edit", new { id=Model.Id})
@Html.ActionLink("Back to list", "Index")
</p>
Delete.cshtml
@model MVC4Movies.Models.MovieDB
@{
ViewBag.Title = "Delete";
} <h2>Delete</h2> <fieldset>
<legend>Movie</legend> @Html.HiddenFor(model => model.Id) <div class="display-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Title)
</div> <div class="display-label">
@Html.LabelFor(model => model.Director)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Director)
</div> <div class="display-label">
@Html.LabelFor(model => model.Date)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Date)
</div>
</fieldset> @using (Html.BeginForm()) {
<p>
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}
Create.cshtml
@model MVC4Movies.Models.MovieDB
@{
ViewBag.Title = "Create";
} <h2>Create</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true) <fieldset>
<legend>Movie</legend> <div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Director)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Director)
@Html.ValidationMessageFor(model => model.Director)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Date)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Date)
@Html.ValidationMessageFor(model => model.Date)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
} <div>
@Html.ActionLink("Back to List", "Index")
</div> @section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
view下面的文件夹Movies(Index.cshtml.....)
MVC概念
MVC的含义是 “模型-视图-控制器”。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含:
· Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。
· Views: 应用程序动态生成 HTML所使用的模板文件。
· Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。
本系列教程,我们将覆盖所有这些概念,并告诉您如何使用它们来构建应用程序。
我的第一个MVC4程序的更多相关文章
- [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序
[.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序 一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...
- 一个.net程序员教你使用less
我是一个.net 程序员,虽然说一直做后台,但是web 前端也会去学,虽然说技术只是层窗户纸,但是像我这种多动症患者,不捅破我心难受啊! 好!废话不多提,下面直接正题,至于less 是什么这里不多讲因 ...
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- DirectX游戏编程(一):创建一个Direct3D程序
一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\ ...
- 第一个python程序
一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...
- 编写第一个MapReduce程序—— 统计气温
摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...
- 1.3 第一个C#程序
几乎没一门编程语言的第一个程序都叫“你好,世界”,所以先在visual studio 中创建一个Helloworld程序. 各部分的详细内容: Main方法是程序运行的起点,最重要的代码就写在Main ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)
1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...
随机推荐
- UITableView 折叠效果
1:创建一个model数据模型 #import <Foundation/Foundation.h> @interface DataModel : NSObject //保存section中 ...
- 2.1.6 用ProtectX实现扫描的反击与追踪
ProtectX是一款在用户连接网络时保护电脑的工具,可以同时监视20个端口,还可以帮助追踪攻击者的来源.一旦有人尝试连接到用户的电脑,它即可发出声音警告并将入侵者的IP位址记录下来,可以防止黑客入侵 ...
- NODE编程(四)--构建Node Web程序2
四.提供静态文件服务 1.创建一个静态文件服务器 __dirname ,取值是该文件所在咋目录路径.分散在不同目录中的文件可以有不同的值. /** * 最进本的ReadStream静态文件服务器 */ ...
- Gradle实战:发布aar包到maven仓库
查看原文:http://blog.csdn.net/u010818425/article/details/52441711 Gradle实战系列文章: <Gradle基本知识点与常用配置> ...
- Java 多线程-上课总结
Java 多线程 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启 ...
- mysql 中浮点型与定点型记录
为了能够引起大家的重视,在介绍浮点数与定点数以前先让大家看一个例子: mysql> CREATE TABLE test (c1 float(10,2),c2 decimal(10,2)); Qu ...
- Jira安装部署
一.先安装JDK JDK1.6下载:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32- ...
- codeforces 678C C. Joty and Chocolate(水题)
题目链接: C. Joty and Chocolate time limit per test 1 second memory limit per test 256 megabytes input s ...
- codeforces 590B B. Chip 'n Dale Rescue Rangers(二分+计算几何)
题目链接: B. Chip 'n Dale Rescue Rangers time limit per test 1 second memory limit per test 256 megabyte ...
- 转: 58同城高性能移动Push推送平台架构演进之路
转: http://geek.csdn.net/news/detail/58738 文/孙玄 本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需 ...