是否可以从局部视图访问基础控制器的属性?MVC4:局部视图中的访问控制器属性
我有以下设置:
public class BaseController : Controller
{
private string ServerName
{
get
{
return Request.ServerVariables["SERVER_NAME"];
}
}
private Entities.Client _Client { get; set; }
public Entities.Client Client
{
get
{
return this._Client ?? (this._Client = this.HttpContext.Application["Client"] as Entities.Client);
}
}
private Settings _Settings { get; set; }
public Settings Settings
{
get
{
if (this._Settings == null)
{
this._Settings = new Settings(this.Client, this.Client.WebPageTemplateCapabilities != null ? SettingsType.XML : SettingsType.SQL);
}
return this._Settings;
}
}
}
我所有的控制器继承BaseController,并在其中的一些控制器的孩子行动的意见我呈现局部视图。有没有办法从其中一个部分视图访问BaseController.Settings?
我控制器返回基于已经等车型的看法,注射对象设置成这种模式似乎并不像一个切实可行的办法来做到这一点,因为只有需要访问Settings对象的视图才是这个问题的局部视图。我的回答有什么缺点吗? – Maritim
@Maritim唯一的缺点我会说,你现在有你的看法加上你的控制器,这不是很好。但是,没有技术上的原因,为什么它不起作用。我的建议是只更新你的局部视图模型以引用设置,并将它们分开。 – James