摘要:
本篇文章带你一步一步创建一个简单的ASP.NET MVC程序。
创建新ASP.NET MVC工程
点击“OK”按钮后,打开下面的窗口:
这里选择“Empty”模板以及“MVC”选项。这次不创建单元测试,因此不选择“Add unit tests”。点击“OK”按钮。
创建工程之后,工程的默认文件夹结构是这样的:
点击运行,程序执行时打开浏览器:
执行结果是应用程序中的服务器错误,因为我们创建的是空的ASP.NET MVC工程,没有控制器和视图。
添加第一个Controller
选择Controller文件夹,鼠标右键,在弹出的菜单中选择”Controller”。打开下面的对话框:
选择“MVC Controller-Empty”,点击“Add”按钮。
在后面弹出的对话框中修改Controller名字为“HomeController”,将空Controller添加到工程中。
默认的Controller代码是这样的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
}
}
修改Action Index,返回字符串:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
// GET: Home
public string Index()
{
return "Hello Word";
}
}
}
执行程序,在浏览器中得到运行结果:
返回Web页面
继续修改Index方法,使用View()函数返回结果。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ViewResult Index()
{
return View();
}
}
}
执行程序,在浏览器中得到执行结果。
这个错误是因为我们还没有给控制器的Action添加视图。
在Index方法内部单击鼠标右键,在弹出的菜单中选择“Add View”按钮。
在弹出的对话框中单击“Add”按钮。
创建的视图默认内容是下面这样的:
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
</div>
</body>
</html>
修改<div></div>内的内容。
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
Hello, World
</div>
</body>
</html>
执行程序,在浏览器中得到执行结果。
此时的在文件夹Views->Home中添加了文件Index.cshtml。
添加动态输出
返回Index方法,输出动态内容。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ViewResult Index()
{
int hour = System.DateTime.Now.Hour;
ViewBag.Greeting = hour < ? "Good Moring" : "Good Afternoon";
return View();
}
}
}
返回Index视图,呈现动态内容。
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@ViewBag.Greeting World (from the view)
</div>
</body>
</html>
执行程序,在浏览器中得到运行结果。