我有一个 ASP.NET 内容页面,其中母版页是动态设置的。两个母版页都包含一个打印按钮和一个用于按钮单击事件的关联事件处理程序。不幸的是,当我尝试从最初未分配的母版页动态访问事件时收到运行时错误。
以下是代码片段:
<%@ Page Language="VB" MasterPageFile="~/Evaluators/masEvaluators.master" AutoEventWireup="false"
CodeFile="EDF_Instructions.aspx.vb" Inherits="Evaluators_EDF_Instructions" Title="EDF - Instructions" %>
Page_Load():
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strPageTitle As String = "Evaluator Data Form - Instructions"
If Page.MasterPageFile.Contains("masEvaluators.master") Then
Dim mp As Evaluators_masEvaluators = CType(Me.Master, Evaluators_masEvaluators)
AddHandler mp.SaveEDF, AddressOf imgbtnPrint_Click
ElseIf Page.MasterPageFile.Contains("masStaff.master") Then
Dim mp As Evaluators_masEvaluators = CType(Me.Master, Evaluators_masEvaluators)
CType(Page.Master.FindControl("imgbtnPrint"), ImageButton).Visible = True
AddHandler mp.SaveEDF, AddressOf imgbtnPrint_Click
End If
当我加载页面并引用“masStaff.master”母版页时会产生以下错误:
System.InvalidCastException: Unable to cast object of type 'ASP.staff_masstaff_master' to type 'Evaluators_masEvaluators'. at Evaluators_EDF_Instructions.Page_Load....
我可以通过向内容页面添加打印按钮来解决问题,但这违背了使用母版页的目的。
这个问题有解决方案吗?我花了很多时间在网上研究这个问题,但还没有找到解决方案。