Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 母版页、表单页、表单runat=server>;母版页上的所有onclick方法?_C#_Asp.net_Methods_Master Pages_Runatserver - Fatal编程技术网

C# 母版页、表单页、表单runat=server>;母版页上的所有onclick方法?

C# 母版页、表单页、表单runat=server>;母版页上的所有onclick方法?,c#,asp.net,methods,master-pages,runatserver,C#,Asp.net,Methods,Master Pages,Runatserver,我的问题是我有多个嵌套母版页: 级别1:全局(页眉、页脚、登录、导航等) 第2级:特定(搜索页面、账户页面等) 级别3:页面本身 现在,因为只有一个表单可以有runat=server,所以我将表单放在全局页面(这样我可以处理登录、反馈等事情) 现在有了这个解决方案,我还必须将示例级别3(见上文)方法(如搜索)也放在级别1母版页上,但这将导致该页的代码非常繁重(用于开发),包括来自所有位置的代码,甚至是仅在单个页面上使用的代码(例如更改电子邮件表单) 有没有办法将此类方法从onclick事件(

我的问题是我有多个嵌套母版页:

  • 级别1:全局(页眉、页脚、登录、导航等)
  • 第2级:特定(搜索页面、账户页面等)
  • 级别3:页面本身
现在,因为只有一个表单可以有
runat=server
,所以我将表单放在全局页面(这样我可以处理登录、反馈等事情)

现在有了这个解决方案,我还必须将示例级别3(见上文)方法(如搜索)也放在级别1母版页上,但这将导致该页的代码非常繁重(用于开发),包括来自所有位置的代码,甚至是仅在单个页面上使用的代码(例如更改电子邮件表单)

有没有办法将此类方法从
onclick
事件(例如:
changemail
)从级别1(全局母版页)委派到级别3(单个页面本身)

更清楚地说: 我不想让全局母版页上的方法
changemail
隐藏在代码后面,而是希望以某种方式将其“移动”到实际使用它的唯一页面。它当前必须位于全局主机上的原因是全局主机具有
表单runat=server
,并且每个aspx页面只能有一个

这样可以更容易(更符合逻辑)构造代码

thnx(希望我解释正确)

我已经搜索过但没有找到任何关于处理这个案件的一般信息,通常的答案是:在母版页上有所有的方法,但我不喜欢它。因此,任何将其移动到特定页面的方法都将非常棒。thnx

编辑也是同一件事的一部分。。。
另一方面-如何访问母版页内容页上的
textbox1.text
?对此有什么最佳做法吗?

如果您将搜索按钮和文本框放在.aspx本身(第3级)上,事件处理程序也将进入页面(或其代码隐藏)。表单标签是否在全局母版页上并不重要(级别1)

至于你的第二个问题:你可以使用

var tb = this.FindControl("textbox1") as TextBox;

退房#1。对于#2,没有可用的强类型?当有人更改名称时,这似乎是为空指针设计的?对于#1:我正在这样做:SignIn和代码:void AuthorizeUser(对象发送方,EventArgs e){[…]}但是得到一个错误:CS1061:'ASP.manage\u-signin\u-default\u-aspx'不包含'AuthorizeUser'的定义,并且找不到接受类型为'ASP.manage\u-signin\u-default\u-aspx'的第一个参数的扩展方法'AuthorizeUser'这就是为什么我认为它在“级别3”页面上不起作用。不确定是什么问题…啊,好吧,明白了-必须公开这个方法!这也使得第二部分不再那么重要了。thnx非常感谢您的帮助:)