问题描述
我制作了一个动作过滤器,并在.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 (将#修改为@)