c# - 在公共(public)方法中分配对象

标签 c# asp.net

我希望在我的母版页上创建一个公共(public)方法,我可以从每个子页面中调用该方法。 我正在努力思考应该如何完成这件事。

在我的子页面上,我使用了此方法来用错误消息填充面板。

protected void errorMessage (string errorText) {
  HtmlGenericControl divTag = new HtmlGenericControl("div");
  Panel_Name.Controls.Add(divTag);
  divTag.InnerHtml = errorText;
}

现在,如果我要在我的主页上公开此功能,它不会识别我的面板,因为它尚未显示。我猜答案涉及 FindControl (抱歉我的垃圾英语代码)

我应该怎么做?

最佳答案

公平地说,对于您的情况,我会在您的页面 (.aspx) 上使用 UserControl (.ascx)。

然后,在 UserControl 中添加错误消息标记,例如:

代码前面(ErrorMessage.ascx)

  <asp:Panel runat="server" ID="PanelErrorMessage" /> // creates a <div>

隐藏代码(ErrorMessage.ascx.cs)

public string ErrorMessage 
{ 
    get {}
    set 
    {
         PanelErrorMessage.Text = value; // sets the panel text (<div>text</div>) to value when property is set
    }
}

在页面上使用您的 UserControl(您还需要使用前缀/后缀将其定义为页面上的控件标记):

<myControls:ErrorMessage runat="server" ID="MyErrorControl" />

如果您需要不同的错误,您还可以在页面上的许多位置执行此操作。

然后,当您遇到错误时,您只需执行以下操作:

MyErrorControl.ErrorMessage = "This is my error message";

工作完成!

关于c# - 在公共(public)方法中分配对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899634/

相关文章:

c# - 通过 Google Apps 和 ASP.net 应用程序使用 Google 联合登录

c# - 代码生成工具,为单元测试创​​建 C# 适配器类?

asp.net - DataAnnotion 在客户端失败(卡住)?

c# - 如何禁用 C# 窗体上的最大化按钮

c# - 使用 C# 在 WPF 中实现多线程(带后台 worker )

asp.net - 更改 ASP.NET 缓存项过期的频率?

c# - 将 POST 参数传递给 WEB API2

c# - 如何处理 Linq2Sql 列表中的空值

c# - ASP.NET 添加了额外的结束标记

c# - 在 DataTable 已经有数据后为 DataTable 设置自动编号