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.zyzy.cn/article/detail/14864/ASP.NET Razor 标记