Я создаю свойство, к которому можно обращаться в Controller и View.
public abstract class BaseWebViewPage : WebViewPage
{
public Application Application { get; set; }
public override void Execute()
{
Application = new Application(Context.GetCurrentFoo());
}
}
public abstract class BaseWebViewPage<TModel> : WebViewPage<TModel>
{
public virtual Application Application { get; set; }
public override void Execute()
{
Application = new Application(Context.GetCurrentFoo());
}
}
И устанавливаю это в контроллере
public abstract class BaseController : Controller
{
protected virtual IApplication Application { get; private set; }
public Institution CurrentFoo
{
get { return HttpContext.GetCurrentFoo(); }
set { HttpContext.SetCurrentFoo(value); }
}
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
Application = new Application(CurrentFoo);
}
}
и пытаюсь использовать его в View
@{
var App = Application;
}
Но получим нулевое значение. Я также попробовал это в методе InitHelpers и методе Execute WebViewPage
. InitHelpers
, похоже, работает, однако Context.CurrentFoo
не имеет данных и всегда выполняется, когда есть HtmlHelpers
, что я не хочу, чтобы это происходило, поскольку это вызывает данные.