私は次のコードを持っている:マスターページを動的に変更する。マスターページから?
public abstract class BasePage : Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
if (IsPostBack)
return;
var section = ConfigurationManager.GetSection("UrlRewriter/PlainRules");
if (section == null)
SetMaster("~/App_Shared/Master/BaseRegular.Master");
else
SetMaster("~/App_Shared/Master/BaseRewritable.Master");
}
protected void SetMaster(string value)
{
MasterPage master = Master;
while (master != null)
{
if (master is SharedMaster)
{
master.MasterPageFile = value;
break;
}
master = master.Master;
}
}
}
それは動的に私のマスターページを変更することで素晴らしい作品が、私はSharedMaster
からではなく、私が持っているすべての単一のページから直接これを行うことができるようにしたいと思います。
Page_PreInitはマスターページに置かれても起動しません。どのようにすればいいですか?
私はまだこのベースページをすべてのページで継承しなければなりませんでした。これは、私が避けたかったものです – bevacqua
@Nico、共通のベースページから継承することは常に良い考えです。私はいくつかの共通機能を後の段階ですべてのページにプッシュするためにベースページを数回使用しました。 – VinayC