📅  最后修改于: 2020-12-28 00:45:01             🧑  作者: Mango
在ASP.NET MVC应用程序中,控制器定义用于处理用户请求并将视图呈现为响应的操作方法。控制器可以执行任何操作。
用户请求可以是以下任何一种:在浏览器中输入URL,单击链接或提交表单。
MVC应用程序使用Global.asax.cs文件中定义的路由规则。该文件用于解析URL并确定控制器的路径。现在,控制器执行适当的操作来处理用户请求。
ActionResult类是所有操作结果的基类。动作方法返回此类的实例。根据操作要执行的任务,可以有不同的操作结果类型。例如,如果要调用View方法的操作,则View方法将返回从ActionResult类派生的ViewResult的实例。
我们还可以创建操作方法,该方法返回任何类型的对象,例如:整数,字符串等。
下表包含内置的操作结果类型。
Action Result | Helper Method | Description |
---|---|---|
ViewResult | View | It is used to render a view as a Web page. |
PartialViewResult | PartialView | It is used to render a partial view. |
RedirectResult | Redirect | It is used to redirect to another action method by using its URL. |
RedirectToRouteResult | RedirectToAction RedirectToRoute |
It is used to redirect to another action method. |
ContentResult | Content | It is used to return a user-defined content type. |
JsonResult | Json | It is used to return a serialized JSON object. |
JavaScriptResult | JavaScript | It is used to return a script that can be executed on the client. |
FileResult | File | It is used to return binary output to write to the response. |
EmptyResult | (None) | It represents a return value that is used if the action method must return a null result. |
在这里,我们将为上一章介绍的控制器添加一个新的动作方法。
要向现有控制器添加操作,我们需要为控制器定义一个公共方法。添加了欢迎操作方法后,我们的MusicStoreController.cs文件如下所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplicationDemo.Controllers
{
public class MusicStoreController : Controller
{
// GET: MusicStrore
public ActionResult Index()
{
return View();
}
public string Welcome()
{
return "Hello, this is welcome action message";
}
}
}
输出:
要访问欢迎操作方法,请执行该应用程序,然后使用MusicStore / Welcome URL对其进行访问。它将产生以下输出。
动作参数是用于从URL检索用户请求的值的变量。
从请求的数据收集中检索参数。它包括用于表单数据,查询字符串值等的名称/值对。控制器类根据RouteData实例为参数值定位。如果存在该值,则将其传递给参数。否则,将引发异常。
Controller类提供两个属性Request和Response,可用于获取处理用户请求和响应。
例
在这里,我们正在控制器中创建一个动作方法。此操作方法具有一个参数。控制器代码如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplicationDemo.Controllers
{
public class MusicStoreController : Controller
{
// GET: MusicStrore
public ActionResult Index()
{
return View();
}
public string ShowMusic(string MusicTitle)
{
return "You selected " + MusicTitle + " Music";
}
}
}
输出:
在URL中,我们必须传递参数值。因此,我们通过此URL localhost:port-no / MusicStore / ShowMusic?MusicTitle = Classic进行操作。它产生以下结果。