【发布时间】:2013-01-03 23:15:10
【问题描述】:
我在几个网页上看到如何从使用该主文件的代码后面的网页调用中与主文件中定义的公共方法接口。
(我在 Visual Studio 2012 上使用 ASP.Net 4.0。)
程序是(抄自文章):
确保页面可以访问该函数(即声明 public),并在 ContentPage 中使用 MasterType 声明:
<%@ Page .... %> <%@ MasterType VirtualPath="~/masterpage.master" %>在页面中,使用 Page.Master.MyFunction() 来访问函数。 *注意:在能够访问该功能之前,您需要保存并构建。
问题是我没有看到方法。这是我所拥有的:
网页(存储在 /MyFolder,所以 /MyFolder):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Logout.aspx.cs" Inherits="BvCorpMain.Candidates.Logout" %>
<%@ MasterType VirtualPath="/SiteMasters/Site.Master" %>
Site.Master CS 文件(存储在 /SiteMasters 文件夹中):
public void UpdateUserBlocksToCookie()
{
}
当我进入注销页面背后的代码并在我输入“Page.Master.”的方法中时,我看不到我的方法。
【问题讨论】:
-
是不是你的虚拟路径缺少波浪号
~字符那么简单,所以应该是VirtualPath="~/SiteMasters/Site.Master" -
不,我试过了。我对 Microsoft 自动插入的 ~ 的问题是它的意思是相对的,这并不总是正确的。我遇到了问题,其解决方案是删除 ~ 并仅引用域的根目录。
标签: asp.net visual-studio-2012 master-pages