📜  ASP.Net教程

📅  最后修改于: 2020-12-28 00:45:01             🧑  作者: Mango

ASP.NET控制器操作和参数

在ASP.NET MVC应用程序中,控制器定义用于处理用户请求并将视图呈现为响应的操作方法。控制器可以执行任何操作。

用户请求可以是以下任何一种:在浏览器中输入URL,单击链接或提交表单。

MVC应用程序使用Global.asax.cs文件中定义的路由规则。该文件用于解析URL并确定控制器的路径。现在,控制器执行适当的操作来处理用户请求。

ActionResult返回类型

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文件如下所示。

// 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,可用于获取处理用户请求和响应。

在这里,我们正在控制器中创建一个动作方法。此操作方法具有一个参数。控制器代码如下所示:

// 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 ShowMusic(string MusicTitle)
        {
            return "You selected " + MusicTitle + " Music";
        }
    }
}

输出:

在URL中,我们必须传递参数值。因此,我们通过此URL localhost:port-no / MusicStore / ShowMusic?MusicTitle = Classic进行操作。它产生以下结果。