【问题标题】:Can a single ascx page use multiple codefile which are partial classes单个 ascx 页面可以使用多个作为部分类的代码文件吗
【发布时间】:2012-07-30 10:18:16
【问题描述】:

我们可以将两个部分类链接到一个 ascx 页面吗?

我浏览了一些链接,但找不到合适的解决方案。 例如,假设我有诸如

之类的文件

Collection.ascx.cs 和 Collection.Search.cs
与 Collection.ascx

我有像按钮单击事件这样的事件,是否可以将它放在部分类中,因为这样做会使方法不可用。
我的意图是处理部分类中的按钮单击事件和下拉更改事件。

【问题讨论】:

    标签: c# ascx


    【解决方案1】:

    是的,在 WebApplication 中,它是 .aspx(网页)和 .ascx(用户控件)的默认属性。

    这些默认带有两个 .cs 文件,将部分类中的代码分开(filename.aspx.designer.cs 和具有相同部分类的文件名.aspx.cs)

    您还可以添加更多 .cs 文件来扩展这些分部类定义。

    但在网站上,它不会工作,对于 aspx 或 ascx。

    【讨论】:

      【解决方案2】:

      是的,部分类的 C# 编译器规则不会因为它的 ASP.NET 而改变。只要确保你的命名空间和类名匹配,源文件不必是解决方案资源管理器中ascx 文件的子文件,但如果你真的想要它,你可以编辑项目文件并添加适当的依赖-on xml 段。

      【讨论】:

        【解决方案3】:

        答案位于 default.aspx 第一行:

        Language="C#" CodeBehind="Default.aspx.cs" ...
        

        将设置每个部分类工作。

        相反,

        Language="C#" CodeFile="Default.aspx.cs" ...
        

        会导致部分类出错。

        但是,在 vs2017 old-style-webForm 中只能使用 CodeFile,所以你必须尝试另一种方式:只需创建一个文件 ..\WebF8\App_Code\Class3.cs 内容:

             public static class Class3 {
                    public static int gg3=33;
             }
        

        那么你就可以在default.aspx.cs中正确看到Class3.gg3了。 注意,这个 Class3.cs 文件必须在 \App_Code 文件夹中。

        【讨论】:

          猜你喜欢
          • 2012-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多