将代码拆分为多个文件

我有一个代码背后的代码太大了。 我需要在控制同一页面的文件背后分解为多个代码。 我看到它使用C#中的部分类完成,但不是在VB中完成。 我试图实现部分类的概念,但它不编译或识别辅助文件中的页面控件。

这是我的ASPX页面指令:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

以下是Default.aspx.vb文件的代码:

Partial Public Class _Default
    Inherits System.Web.UI.Page

   <!-- methods go here -->

End Class

_Default类越来越大。 我想将它的一些方法移动到单独的文件中,以便于阅读和维护。 我试图创建一个单独的文件与另一个部分公共类_Default中。

Partial Public Class _Default

   <!--- methods go here -->

End Class

但是,第二个类无法识别Default.aspx上的任何服务器控件(标有runat =“server”的控件标记)。 我已经尝试了与类周围的声明命名空间无济于事。

如何将我的代码隐藏在多个文件中以支持分区?

    Update/Edit:

我的问题与这个问题是一样的,但对于VB(不应该是一个区别,但不知何故)。


我刚刚在VS中创建了一个新的Web项目,为_Default创建了一个新的部分类,并且我可以轻松地访问所有控件。 你可能有命名空间问题。

Default.aspx的

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication2._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="tbTest" runat="server" />
    </div>
    </form>
</body>
</html>

Default.aspx.vb

Partial Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Test()

    End Sub

End Class

Default.aspx.Designer.vb

Partial Public Class _Default

    Protected WithEvents form1 As Global.System.Web.UI.HtmlControls.HtmlForm

    Protected WithEvents tbTest As Global.System.Web.UI.WebControls.TextBox
End Class

新创建的test.vb

Partial Public Class _Default

    Public Sub Test()

        tbTest.Text = "123"

    End Sub

End Class

@the_lotus - 我认为上面提到的@ Kashif,问题在于成为一个网站而不是Web应用程序。 我的项目设置为一个网站。 Web应用程序编译成单个程序集,允许通过多个文件访问aspx页面成员。 网站编译成多个程序集,因此,aspx页面成员被锁定到指定的CodeFile中。 我没有意识到这一点,直到我看了你的例子,并注意到你使用CodeBehind而不是CodeFile。 然后,我参考了MSDN上的Page Directive手册页,并查看了两者之间的区别。 该网页上指定了网站与Web应用程序概念。 这让我明白@Kashif在上述评论中所谈论的内容。

长话短说,我需要将它变成一个Web应用程序项目才能使其工作。 感谢你的努力和你提供的例子。 这是最有帮助的!

链接地址: http://www.djcxy.com/p/65213.html

上一篇: Split code behind into multiple files

下一篇: vb.net it may be inaccessible due to its protection level