📜  c# 控制器 - C# (1)

📅  最后修改于: 2023-12-03 15:29:47.721000             🧑  作者: Mango

C# 控制器

简介

控制器是 C# 中 MVC(模型 - 视图 - 控制器)模式中的组成部分之一。它负责处理来自用户的请求,根据请求执行相应的操作,然后返回结果给用户。

控制器通常包含多个动作(action),每个动作处理一个请求。控制器还可以与模型(model)和视图(view)交互,从模型中检索数据并将其传递给视图。

创建控制器

要创建控制器,可以使用 Visual Studio 中的“添加新项”功能。右键单击解决方案资源管理器中的项目文件夹,然后选择“添加”>“新建项”。在弹出窗口中,选择“MVC 控制器类”,命名控制器并单击“添加”按钮即可创建控制器。

public class HelloWorldController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

上面的代码示例创建了一个名为 HelloWorldController 的控制器,它包含一个名为 Index 的动作。 Controller 类是 MVC 框架中的基本控制器类,需要继承该类才能创建控制器。

控制器动作

控制器的动作是处理请求的核心部分。动作负责执行请求的操作并返回对用户的响应。动作的返回值通常是 IActionResult 类型,它表示操作执行的结果。

public IActionResult Index(string name)
{
    ViewData["Message"] = $"Hello {name}!";
    return View();
}

上面的代码示例演示了一个带有参数的动作。该动作使用视图数据(ViewData)传递欢迎消息,该消息包含字符串参数 name 指定的名称。

控制器中的模型绑定

控制器还可以从请求中检索数据,并将数据保存到模型中以供后续使用:

[HttpPost]
public IActionResult Login(UserModel model)
{
    var user = _userService.Login(model);
    if (user == null)
    {
        ModelState.AddModelError("", "Invalid login attempt.");
        return View(model);
    }
    return RedirectToAction("Index", "Home");
}

上面的代码示例演示了一个处理登录请求的动作。该动作从请求中提取用户模型数据,并将其传递给 UserService 中的 Login 方法,以验证用户是否有效。

视图

控制器的另一个重要部分是视图。视图负责呈现控制器执行操作的结果,通常由 HTML 和 C# 代码组成。

<h1>@ViewData["Message"]</h1>

上面的代码示例演示了一个简单的视图,它使用 ViewData 传递消息数据并将其呈现在页面上。

总结

控制器是 MVC 模式中的一个组成部分,它负责代表用户处理请求并将结果返回给用户。控制器的动作是处理请求的核心部分,它通常与模型和视图一起使用。要创建控制器,可以使用 Visual Studio 的“添加新项”功能。