从控制器过滤数据并将其传递给视图
本文关键字:视图 控制器 过滤 数据 | 更新日期: 2023-09-27 18:05:12
我有一个小场景:
我从数据库中获取数据,我想在我的ActionExecuted过滤器中过滤它,然后将其发送到视图。我正在访问从数据库中获取的数据使用TempData,在我的过滤器。在我修改了Filter中的数据之后,我想把它发送给View。
当您在自定义过滤器的OnActionExecuted
方法中修改TempData
时,视图将通过设计获得修改的TempData
。
的例子:过滤器:
public class MyFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.Controller.TempData["key"] += "modified";
}
}
控制器:
[MyFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
TempData["key"] = "some_value";
return View();
}
}
视图(Index.cshtml):
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<div>
@TempData["key"]
</div>
</body>
</html>
当您运行此操作时,您将看到Index
页面显示从TempData
中提取的修改数据。
这里有一些解释动作过滤器特性的文章