gpt4 book ai didi

asp.net-mvc - 有没有办法为特定 Controller 中的每个 ASP.Net MVC 操作返回相同的数据?

转载 作者:行者123 更新时间:2023-12-02 12:46:39 25 4
gpt4 key购买 nike

我有一个具有多个操作的 Controller ,所有操作都返回一组相同的数据。不是在每个操作中将数据添加到 ViewBag 中,而是有一些模式或属性或我可以调用或设置的东西来为每个操作添加相同的数据到 viewdata 或 viewbag 中,或者其他更好的方法来执行获取每个 View 中都有相同的数据,而无需在每个操作中调用该方法?

最佳答案

您正在寻找的是ActionFilter,然后覆盖OnActionExecuting。这是我的 ActionFilters 之一,它将当前登录的用户附加到 ViewBag:

public class AppendUserActionFilterAttribute : ActionFilterAttribute
{
...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
User currentUser = _sessionManager.CurrentUser;

dynamic viewBag = filterContext.Controller.ViewBag;
viewBag.CurrentUser = currentUser;
}
...
}

然后您需要在任何您希望发生这种情况的地方应用该属性。如果将其附加到某个操作,该操作将获取 ViewBag 中添加的条目。如果将其附加到 Controller ,则其所有操作都会获取它。如果您将其附加到基本 Controller 并让所有 Controller 都对其进行子类化,那么整个应用程序中的所有操作都会获得它

 [AppendUserActionFilter]
public class MyController : Controller {

public ActionResult Foo() {
....
}
}

关于asp.net-mvc - 有没有办法为特定 Controller 中的每个 ASP.Net MVC 操作返回相同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5439974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com