ベースコントローラーのInitializeイベントで更新されているSiteNavigationクラスがあります。
[Serializable]
public class SiteNavigation
{
public SiteNavigation()
{
IsSummarySelected = true;
}
public Model.Dtos.Folder[] Folders { get; set; }
public bool IsSummarySelected { get; set; }
}
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
var siteNavigation = new SiteNavigation();
siteNavigation.Folders = GetMeMyFolders() as Folder[];
ViewBag.SiteNavigation = siteNavigation;
}
コントローラでは、IsSummarySelectedプロパティがこの値に変更されます。
ViewBag.SiteNavigation.IsSummarySelected = false;
このコード行を使用して_Layoutファイルのプロパティにアクセスすると、値は常にtrueになります。これは、navオブジェクトが再び新規作成され、コンストラクターがそれをtrueに設定しているようです。
@if (ViewBag.SiteNavigation.IsSummarySelected)
navオブジェクトを変数にキャストし直して、プロパティもそのように設定してみました。サイコロはありません。どんな助けでもいただければ幸いです。
困惑したと呼んでください!
ありがとう、スティーブン