問題を解決するためには、私はグローバルのActionFilterを使用してviewbagのビューにデータを渡されました。ここにコードがあります。
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public sealed class GlobalValuesActionFilter : ActionFilterAttribute
{
private readonly ICacheService _cacheService;
public GlobalValuesActionFilter(ICacheService cacheService)
{
this._cacheService = cacheService;
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.Controller.ViewBag.UIStrings = _cacheService.GetUIStrings();
}
}
登録依存(Autofac)
builder.Register(c => new GlobalValuesActionFilter(c.Resolve<ICacheService>()))
.AsActionFilterFor<Controller>().InstancePerRequest();
そして表示するために、次の行を追加しました。
<script type="text/javascript">
@(Html.Raw(ViewBag.UIStrings));
</script>