📅  最后修改于: 2023-12-03 14:59:24.374000             🧑  作者: Mango
ASP.NET MVC控制器是一个处理用户请求并将响应返回给客户端的组件。控制器是MVC模式中的"控制器",相当于一个中央调度器,负责从视图和模型之间协调通信的任务。
ASP.NET MVC控制器通常继承自System.Web.Mvc.Controller基类,并通过方法来处理HTTP请求。以下是一个最简单的控制器实例:
public class HelloWorldController : Controller
{
public ActionResult Index()
{
return View();
}
}
HelloWorldController
为控制器名称,必须以"Controller"结尾。Index()
为处理HTTP请求的方法,返回一个ActionResult对象。以下是控制器的几个重要属性:
HttpContext对象提供了对请求和响应的访问权限。使用此对象可以访问HTTP请求和响应的所有信息。
HttpContext.Request.QueryString
HttpContext.Response.Write("Hello World!")
ViewData用于在控制器和视图之间传递数据。Controller.ViewData属性是一个Dictionary集合,它用于存储键值对。
ViewData["Message"] = "Hello World!";
ViewBag属性与ViewData类似,也可用于在控制器和视图之间传递数据。但它是一个动态属性,可以直接访问。
ViewBag.Message = "Hello World!";
在控制器中,可以定义多个方法来处理HTTP请求。以下是ASP.NET MVC中常用的几种方法:
ActionResult方法是最常用的方法之一,它返回一个ActionResult对象,可在方法中调用View()方法呈现给客户端。
public ActionResult Index()
{
return View();
}
JsonResult方法用于返回一个JSON格式的响应给客户端。
public JsonResult GetJson()
{
var result = new { Name = "Hello World", Message = "ASP.NET MVC!" };
return Json(result, JsonRequestBehavior.AllowGet);
}
PartialViewResult方法用于呈现一个部分视图。
public PartialViewResult MyPartialView()
{
return PartialView();
}
路由系统根据URL匹配控制器和方法,并调用相应的方法来处理请求。默认情况下,ASP.NET MVC使用{controller}/{action}/{id}路由模式。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
ASP.NET MVC控制器是MVC模式中的核心组件,它负责处理用户请求、从模型中检索数据、渲染视图并返回给客户端。掌握控制器的使用方法对于开发ASP.NET MVC应用程序非常重要。