ASP.NET MVC(Model-View-Controller)框架中,控制器(Controller)是应用程序中处理用户输入和协调其他组件的核心部分。控制器负责接收用户请求、处理业务逻辑、调用模型(Model)并最终选择视图(View)来呈现响应。以下是关于如何使用ASP.NET Razor标记创建MVC控制器的一些建议和示例:

1. 创建控制器类: 在Controllers文件夹中创建控制器类。控制器类通常继承自Controller基类,提供了许多有用的方法和属性。

    示例(HomeController.cs):
    using Microsoft.AspNetCore.Mvc;

    public class HomeController : Controller
    {
        // 默认的动作方法,响应 /Home/Index 请求
        public IActionResult Index()
        {
            // 处理业务逻辑,获取数据等

            // 返回视图,可以是默认视图或指定的视图
            return View();
        }

        // 其他动作方法...
    }

2. 动作方法(Action Method): 控制器中的每个公共方法都是一个动作方法,它们负责响应特定的HTTP请求。在上面的示例中,Index方法是一个动作方法,负责处理/Home/Index请求。

3. 视图返回: 在动作方法中,使用View()方法返回默认视图,或使用View("ViewName")指定特定的视图。视图文件通常与控制器和动作方法相对应,例如Views/Home/Index.cshtml。

    示例:
    public IActionResult Index()
    {
        // 处理业务逻辑,获取数据等

        // 返回默认视图
        return View();
    }

    public IActionResult About()
    {
        // 处理业务逻辑,获取数据等

        // 返回名为 "About" 的视图
        return View("About");
    }

4. 传递数据到视图: 使用View()方法的重载,将模型数据传递给视图。这通常涉及创建一个模型类,将其实例化并传递给视图。

    示例:
    public IActionResult Index()
    {
        // 处理业务逻辑,获取数据等

        // 创建模型实例
        var model = new YourNamespace.Models.User
        {
            UserName = "JohnDoe",
            Email = "john.doe@example.com"
        };

        // 将模型传递给视图
        return View(model);
    }

5. 动作过滤器(Action Filters): 可以使用动作过滤器来在执行动作方法之前或之后执行代码。这对于实现日志记录、身份验证等功能非常有用。

    示例:
    [Authorize] // 要求用户身份验证
    public IActionResult SecurePage()
    {
        // 处理受保护的页面逻辑

        return View();
    }

6. 路由(Routing): 控制器使用路由定义来匹配URL和动作方法。默认情况下,路由与控制器和动作方法的名称相匹配。

    示例:
    // 默认路由
    public class Startup
    {
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }

通过创建和使用控制器,您可以有效地组织和管理应用程序的业务逻辑,并通过动作方法选择相应的视图来呈现用户界面。控制器是MVC架构中实现用户请求处理的关键组件之一。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14864/ASP.NET Razor 标记