您的位置:首页 > 编程语言 > ASP

Intro to ASP.NET MVC 4 with Visual Studio

2012-12-23 17:30 375 查看

Intro to ASP.NET MVC 4 with Visual Studio [译一:目录]

作者:Rick Anderson and Scott Hanselman

译者:PeterZhang

注: 边读编译,如有不准确之处,请予以纠正,谢谢!!!

-----------------------------------------------------------------------------------------------------------------

目录

入门

将创建

入门指南

创建第一个应用程序

添加一个控制器

添加一个视图

改变视图和布局页面

从控制器向视图传数据

添加一个模型

创建模型类

创建连接字符串连接SQL Server LocalDB

从控制器中访问模型的数据

创建电影类

检查自动生成的代码

强类型模型和 @model 关键字

与SQL Server LocalDB配合工作

检查编辑方法和编辑视图

处理POST请求

添加搜索方法和搜索视图

显示 SearchIndex Form

添加类别搜索

在SearchIndex上添加标记以支持类别索引

添加新字段到电影模型和表

在电影模型上添加费用属性

模型和数据库模型的区别

当模型改变时自动重创建数据库

模型上添加验证

不要写重复的代码

在电影模型上添加验证规则

ASP.NET MVC中验证错误的界面显示

在创建视图和创建Action方法中如何验证

在电影模型中添加格式验证

检查详细信息和删除方法

检查详细信息和删除方法

总结

-----------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------

MVC 代表 model-view-controller (模型-视图-控制器)。MVC 是结构良好,可测试,易于维护的程序设计模式。基于MVC的应用程序包含:

模型:类,代表应用程序使用的数据和数据相应业务规则的验证逻辑。

视图:应用程序用于动态生成HTML响应的模板文件。

控制器:类,处理浏览器请求,取回模型数据,然后选择响应浏览器的视图模板。

在本教程中将涵盖这些概念,并演示如何使用它们创建一个应用程序。

让我们首先创建一个控制器类。在项目浏览器中,右键 Controller 文件夹, 然后选择 “添加控制器”。



命名新的控制器为“HelloWorldController”。保留默认模板Empty MVC controller,然后点击“添加”。



在项目浏览器中创建了一个名为 HelloWorldController.cs 的新文件。这个文件在IDE中打开了。



用下面的代码替换文件内容。



using System.Web;
using System.Web.Mvc;

namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/

public string Index()
{
return "This is my <b>default</b> action...";
}

//
// GET: /HelloWorld/Welcome/

public string Welcome()
{
return "This is the Welcome action method...";
}
}
}




该例子中控制器方法返回一个HTML字符串。控制器被命名为 HelloWorldController,上面的第一个方法是 Index。 让我们从浏览器中调用该方法。运行应用程序(按F5或Ctrl + F5)。 在浏览器中,在网址后面附加 “HelloWorld”。(例如, 在下面的插图中,网址是 http://localhost:12434/HelloWorld。)浏览器中页面显示如下图。 在上面的方法中,代码直接返回字符串。 你告诉系统返回HTML,然后它返回!



ASP.NET MVC 根据URL调用不同的控制类(和其中不同的action方法)。ASP.NET 使用如下格式的默认路由逻辑决定调用什么代码:

/[Controller]/[ActionName]/[Parameters]

URL的第一部分决定要执行的控制类。/HelloWorld 映射为 HelloWorldController 类。 URL的第二部分决定要执行的action方法。/HelloWorld/Index 将执行HellowWorldController类的Index方法。如果只是浏览/HelloWorld,默认调用Index方法。这是因为没有指明action方法时,Index为默认的调用方法。
浏览http://localhost:xxxx/HelloWorld/Welcome。Welcome方法被调用且返回字符串“This is the Welcome action method...”。 默认的MVC映射是/[Controller]/[ActionName]/[Parameters]。 对于该URL,controller是HelloWorld,Welcome是action方法。在该URL中没有使用[/Parameters]。



让我们对这个例子做些更改以便从URL传递参数到控制器(例如,/HelloWorld/Welcome?name=Scott&numtimes=4)。如下更改Welcome方法接受两个参数。注意下面的代码使用C#的可选参数特性,指明在没有为numTimes参数传递值时使用默认值1。

public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}


运行程序,输入示例URL (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)。你可以在URL中为name和numtimes传递不同的值。ASP.NET MVC 模型绑定系统自动把地址栏查询字符串中的参数映射为控制器中方法的参数。



在这些示例中,控制器一直在做MVC的“VC”部分--即视图和控制器的工作。控制器直接返回HTML字符串。通常你不期望控制器直接返回HTML,因为代码会变得非常繁琐。相反会使用一个单独的视图模板文件来生成HTML相应。下面来看看如何做这点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: