c#创建一个特性路由器,通过Controler控制器的方法将当前时间显示在页面上
时间: 2024-10-16 08:18:23 浏览: 25
ASP.NET Core Web API,具有单个控制器的多个Get或Post方法
在C#中,要创建一个特性路由(Attribute Routing),通常是在ASP.NET MVC框架下使用,可以让你自定义URL到Action的方法映射。这里是一个简单的步骤说明:
1. 首先,创建一个自定义的HttpAttribute,例如`CurrentTimeAttribute`:
```csharp
using System;
using System.Web.Mvc;
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class CurrentTimeAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
filterContext.Controller.ViewData["CurrentTime"] = now;
base.OnActionExecuting(filterContext);
}
}
```
这个特性会在目标方法执行前添加当前时间到视图数据。
2. 在Controller中,标记需要显示当前时间的方法:
```csharp
public class HomeController : Controller
{
[HttpGet]
[CurrentTime]
public ActionResult DisplayCurrentTime()
{
return View();
}
}
```
这里我们假设有一个名为`DisplayCurrentTime`的方法,它会返回一个视图,并利用`CurrentTimeAttribute`自动填充当前时间。
3. 现在,访问`http://yourdomain.com/home/displaycurrenttime`时,`DisplayCurrentTime`方法会被执行,并在视图中显示当前时间。如果在视图中要获取时间,可以像这样使用`@ViewData["CurrentTime"]`。
阅读全文