我有一个小场景:
我从数据库中获取数据,我想在ActionExecuted Filter中过滤它,然后将其发送到View。我在我的过滤器中使用TempData访问数据库中提取的数据。修改过滤器内的数据后,我想将其发送到View。 有什么可能的解决方案?
答案 0 :(得分:1)
当您修改自定义过滤器的TempData
内OnActionExecuted
方法时,视图会按设计获得修改后的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
提取的修改数据。