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程序的更多相关文章

  1. [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序

    [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序   一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...

  2. 一个.net程序员教你使用less

    我是一个.net 程序员,虽然说一直做后台,但是web 前端也会去学,虽然说技术只是层窗户纸,但是像我这种多动症患者,不捅破我心难受啊! 好!废话不多提,下面直接正题,至于less 是什么这里不多讲因 ...

  3. Pro ASP.NET MVC –第二章 第一个MVC程序

    学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...

  4. DirectX游戏编程(一):创建一个Direct3D程序

    一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\ ...

  5. 第一个python程序

    一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...

  6. 编写第一个MapReduce程序—— 统计气温

    摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...

  7. 1.3 第一个C#程序

    几乎没一门编程语言的第一个程序都叫“你好,世界”,所以先在visual studio 中创建一个Helloworld程序. 各部分的详细内容: Main方法是程序运行的起点,最重要的代码就写在Main ...

  8. 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能

    一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...

  9. MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)

    1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...

随机推荐

  1. 【Android 界面效果42】如何自定义字体

    项目里要统一用设计师的字体,android:typeface只支持系统三种字体.有什么比较好的做法? 你需要为整个应用替换自定义字体. 解决方案 1)Android默认方法 #1 你可以通过ID查找到 ...

  2. 【Linux/Ubuntu学习4】ubuntu 下面安装 vim 的问题

    ubuntu 下面安装 vim 的问题 1.输入vim时,显示: 程序“vim”已包含在以下软件包中: * vim * vim-gnome * vim-tiny * vim-gtk * vim-nox ...

  3. 使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态

    今天在提交 APP 审核版本的时候iTunes Connect 一直获取不到应用程序的状态,原因是,14号 xcode 8一出 直接升级使用 xcode 8 打包发布包,然后直接用 xcode8 构建 ...

  4. iOS - UI - UISwitch

    UISwitch //开关    不用设置宽高  有默认宽高 UISwitch * sw = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100,  ...

  5. Bootstrap基础学习-1

    Bootstrap是一个基于栅格结构的前端结构框架(当然也有JS,JQuery),它的优点是内容框架能够迅速搭建起来,基于媒介查询可以使搭建的页面迅速的适应不同的用户端,无论是手机,平板,还是PC,基 ...

  6. LinearLayout和RelativeLayout

    LinearLayout和RelativeLayout 共有属性:java代码中通过btn1关联次控件android:id="@+id/btn1" 控件宽度android:layo ...

  7. CSS之页面添加标签

    就是因为昨天弄这个“神奇的小标签”差点把自己的园子给废了(情节真的有这么严重),说多了都是泪啊~~(┳_┳).本来是想在页首添加这个“神奇的小标签”的,不知是插件有BUG还是代码错误当场就导致不能编辑 ...

  8. ping命令的用法大全!

    1)如何查看本机所开端口: 用netstat -an命令查看!再stat下面有一些英文,我来简单说一下这些英文具体都代表什么- LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发 ...

  9. Python3 - 时间处理与定时任务

    1.计算明天和昨天的日期 #! /usr/bin/env python #coding=utf-8 # 获取今天.昨天和明天的日期 # 引入datetime模块 import datetime #计算 ...

  10. ArcGIS Desktop开发基础(转)

    http://www.cnblogs.com/maweifeng/archive/2006/07/19/455024.html  原文地址 ArcGIS Desktop开发的类型 ○ 自定义ArcMa ...