如何解决从动作过滤器传递值后,ViewBag在Layout中返回null
我制作了一个动作过滤器,并在.net core 2.2应用程序中对其进行了全局设置。 该动作过滤器旨在获取值并将其传递到ViewBag中,该ViewBag用于其他视图所继承的Layout视图。这个动作过滤器会获取值并将其传递到我的ViewBag中,但是ViewBag仍然在布局视图中返回null。
这是动作过滤器
public override async void OnResultExecuting(ResultExecutingContext context)
{
SomeAppSettingClass = new SomeAppSettingClass()
{
token = configuration.GetValue<string>("SomeAppSettingClass:token")
};
IOptions<SomeAppSettingClass> settingsAccessor = Options.Create(appSetting);
if (context.Controller is Controller)
{
var controller = context.Controller as Controller;
var companyClient = new CompanyClient(settingsAccessor);
var companyInfo = await companyClient.GetById(); //this always returns a value
controller.ViewBag.Company = companyInfo;
}
base.OnResultExecuting(context);
}
这就是我在版式中的用法
<h3>@ViewBag.Company.CompanyName</h3>
这就是我在启动页面中全局提供ActionFilter的方式。
services.AddMvc(options =>
{
options.Filters.Add(new MyActionFilter(Configuration));
});
为什么ViewBag返回null?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。