使用函数设置母版页文件
本文关键字:母版页 文件 设置 函数 | 更新日期: 2023-09-27 18:09:07
我想使用另一个类函数更改masterpagefile
的例子:
public class XYZClass
{
public void CheckLogin(object ses,bool ipb,ref MasterPage page)
{
if (!(ses == null))
{
if (ses.ToString() == "Admin")
page.MasterPageFile = "~/Admin.master";
else
page.MasterPageFile = "~/MasterPage.master";
}
else
{
Response.Redirect("~/frmLogin.aspx");
}
}
}
public partial class frmDoctorHistory : System.Web.UI.Page
{
BLLcheckLogin checkLogin = null;
protected void Page_PreInit(object sender, EventArgs e)
{
checkLogin = new BLLcheckLogin();
checkLogin.CheckLogin(Session["usertype"], IsPostBack, ref MasterPageFile);
}
}
,我从另一个aspx源文件调用这个函数,它给了我一个错误,像"属性、索引器或动态成员访问不能作为out或ref参数传递"。
设置母版页的时间不能晚于PreInit
事件
参考MSDN中的代码示例。
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/NewMaster.master";
}
您必须将当前代码重写为:
public void CheckLogin(object ses,bool ipb, Page page)
{
if (!(ses == null))
{
if (ses.ToString() == "Admin")
page.MasterPageFile = "~/Admin.master";
else
page.MasterPageFile = "~/MasterPage.master";
}
else
{
Response.Redirect("~/frmLogin.aspx");
}
}
protected void Page_PreInit(object sender, EventArgs e)
{
checkLogin = new BLLcheckLogin();
MasterPage mp;
checkLogin.CheckLogin(Session["usertype"], IsPostBack, this);
}
我改变了你的代码来传递Page
而不是MasterPageFile
属性。