在控制器中:
protected override void Initialize(RequestContext requestContext)
{
if (db == null) { db = new myRepository(); }
if (currentCalendar == null)
{
currentCalendar =
db.FindCalendarInfoByUrl(
requestContext.RouteData.Values["calurl"].ToString());
// if not found ... show Unavailable Content View
if (currentCalendar == null)
RedirectToAction("ContentNotAvailable");
// to show in the MasterPage
Session["GoogleId"] = currentCalendar.GoogleAnalyticsId;
}
base.Initialize(requestContext);
}
Session
变量尚未在请求的这个时间定义,我也不能使用ViewData
,因为它总是为空...
如何使用这2个变量GoogleId
和CalendarUrl
传递给MasterPage
?
我在想我可以使用Cache
,但有很多,我还没有进入缓存:
alt text http://www.balexandre.com/temp/2010-11-17_2328.png
完成此操作的最佳选择是什么?
答案 0 :(得分:1)
我不确定为什么您的ViewData在母版页中为空,但请尝试覆盖OnActionExecuting
事件。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
另请参阅以下内容: