gpt4 book ai didi

asp.net-mvc - 自定义 ActionResult 和 viewbag

转载 作者:行者123 更新时间:2023-12-01 12:52:59 26 4
gpt4 key购买 nike

我写了一个非常简单的 Actionresult,它派生自 ViewResult

    public class FormResult : ViewResult
{
public override void ExecuteResult(ControllerContext context)
{
context.Controller.ViewBag.Form = "value";

base.ExecuteResult(context);
}
}

它基本上只是为 ViewBag 添加了一个值。

然后我在 action 方法中返回它。

    public ActionResult Index()
{
return new FormResult();
}

问题是,ViewBag 在相应的 View 中是空的。

我是不是漏掉了什么?

最佳答案

您必须从 Controller 传递 ViewData

public ActionResult Index()
{
return new FormResult
{
ViewData = ViewData
};
}

如果您看到 View() 方法的源代码,这就是它

protected internal virtual ViewResult View(string viewName, string masterName, object model)
{
if (model != null)
{
ViewData.Model = model;
}

return new ViewResult
{
ViewName = viewName,
MasterName = masterName,
ViewData = ViewData,
TempData = TempData,
ViewEngineCollection = ViewEngineCollection
};
}

ViewData, TempData,.. 是从 Controller 传递过来的。

关于asp.net-mvc - 自定义 ActionResult 和 viewbag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099752/

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