Gib*_*boK 8 c# asp.net master-pages
我正在用C#编写ASP.NET 4应用程序.我有一个母版页,其中我有以下方法:
public void DisplayMessage(string input)
{
Label myMessageDisplayer = (Label)FindControl("uxMessageDisplayer");
myMessageDisplayer.Text = input;
}
Run Code Online (Sandbox Code Playgroud)
我可以从内容页面调用此方法吗?
目前,我在内容页面中使用此代码:
Master.DisplayMessage("Item has been inserted.");
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
'System.Web.UI.MasterPage'不包含'DisplayMessage'的定义,并且找不到接受类型'System.Web.UI.MasterPage'的第一个参数的扩展方法'DisplayMessage'(你是否缺少using指令?或汇编参考?)
任何帮助将不胜感激.
您可以像其他人一样使用强制转换来获取主页面类型,或者您可以将MasterType指令添加到页面标记中(在顶部,标准<%@ Page %>指令所在的位置):
<%@ MasterType TypeName="YourNamespace.YourMasterPageType" %>
Run Code Online (Sandbox Code Playgroud)
然后在您的页面代码中,您可以拥有示例中的内容:
Master.DisplayMessage("Item has been inserted.");
Run Code Online (Sandbox Code Playgroud)
该MasterType指令可从.NET 2向上获得.
您需要将其Master转换为实际的母版页类型
// MyMasterPage is the type of your masterpage
((MyMasterPage)Master).DisplayMessage("Item has been inserted.");
Run Code Online (Sandbox Code Playgroud)
您还可以在内容页面的顶部添加MasterType指令以实现相同的目的:
<%@ MasterType VirtualPath="~/MyMasterPage.master" %>
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
Master.DisplayMessage('Item has been inserted.');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3904 次 |
| 最近记录: |