我的第一个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>, ...
随机推荐
- Java Properties类
Properties 是哈希表的一个子类.它是用来维持值列表,其中的键是一个字符串,值也是一个字符串. Properties类被许多其他的Java类使用.例如,它是对象通过System.getProp ...
- Android 高级UI设计笔记17:Android在非UI线程中显示Toast
1. 子线程的Toast怎么显示不出来? 因为Toast在创建的时候会依赖于一个Handler,并且一个Handler是需要有一个Looper才能够创建,而普通的线程是不会自动去创建一个Looper对 ...
- Java学习笔记——Java工厂模式之简单工厂
package com.app; import java.util.Date; /* * 工厂模式:简单工厂.工厂方法.抽象工厂 * * */ public class Test0718_Factor ...
- Oracle基础 (十三)日期函数
日期函数 SYSDATE --当前系统时间 select sysdate from dual; EXTRACT --获取当前年份 select extract(year from sysdate) f ...
- codechef January Challenge 2014 Sereja and Graph
题目链接:http://www.codechef.com/JAN14/problems/SEAGRP [题意] 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1. [分析] 从结 ...
- poj 2029 二维树状数组
思路:简单树状数组 #include<map> #include<set> #include<cmath> #include<queue> #inclu ...
- IOS的一些尺寸
iPhone或iTouch的宽为320像素,高为480像素, 状态栏高为20像素 toobar高为44像素 tabbar高为49像素 导航栏高为44像素 iphone分辨率参数 型号 屏幕尺寸 分辨率 ...
- 【CSS3】---结构性伪类选择器—nth-child(n)+nth-last-child(n)
结构性伪类选择器—nth-child(n) “:nth-child(n)”选择器用来定位某个父元素的一个或多个特定的子元素.其中“n”是其参数,而且可以是整数值(1,2,3,4),也可以是表达式(2n ...
- java中的@Override是否需要
java中的重载注解 @Override 是否需要?今天被人问到这个问题,回答的不太好,下来看了一下源码 /** * Annotation type used to mark methods that ...
- C# 中怎么将string转换成int型
int intA = 0;1.intA =int.Parse(str);2.int.TryParse(str, out intA);3.intA = Convert.ToInt32(str);以上都可 ...