C# 当值从动作过滤器传入布局后,ViewBag在布局中返回null
我制作了一个动作过滤器,并在我的.NETCore2.2应用程序中全局设置它。 此操作筛选器用于获取值并将其传递到ViewBag中,该ViewBag用于其他视图继承的布局视图。此操作筛选器获取该值并将其传递到我的ViewBag中,但ViewBag在布局视图上仍返回null 这是动作过滤器C# 当值从动作过滤器传入布局后,ViewBag在布局中返回null,c#,asp.net-core,actionfilterattribute,C#,Asp.net Core,Actionfilterattribute,我制作了一个动作过滤器,并在我的.NETCore2.2应用程序中全局设置它。 此操作筛选器用于获取值并将其传递到ViewBag中,该ViewBag用于其他视图继承的布局视图。此操作筛选器获取该值并将其传递到我的ViewBag中,但ViewBag在布局视图上仍返回null 这是动作过滤器 public override async void OnResultExecuting(ResultExecutingContext context) { SomeAppSetting
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);
}
为什么ViewBag返回空值?我刚刚测试了它,它正在工作。您是否尝试调试结果筛选器?也许是别的什么地方出了问题。是的,我出了问题。我甚至传递了一个静态字符串值作为viewbag,仍然是同一个问题:显示一个空字符串。也许你可以向我们展示MyActionFilter类的完整代码。
<h3>@ViewBag.Company.CompanyName</h3>
services.AddMvc(options =>
{
options.Filters.Add(new MyActionFilter(Configuration));
});