【发布时间】:2012-06-18 16:48:55
【问题描述】:
我们使用 T4 来生成 .aspx 和 .vb 文件。一切正常 - 但我们经常需要自定义页面上的行为。
但是,我们有时也必须重新生成页面 - 这可能会破坏原本仍然有效的工作。
我想要这样的设置:
Default.aspx 'which would contain the controls
Default.aspx.vb 'which would bind, load and save data
Default.behaviour.vb '(or something like that) - which would store the behaviour
两个页面都可以引用控件。
这可能吗?
Stevedog:谢谢你,我怀疑我的错误在代码中会更明显 - 这是一个例子:
'##in codebehind Default.asp.vb:
'##there is a asp:label called lblTest
Partial Class pages_Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
writeMessage()
End If
End Sub
Partial Private Sub writeMessage()
End Sub
End Class
与
'##in codefile Default.behaviour.vb:
Partial Public Class pages_Default
Inherits System.Web.UI.Page
Private Sub writeMessage()
lbltest.Text = "Hello"
End Sub
End Class
【问题讨论】:
-
这是一个网站还是一个网络应用程序?实际上可以声明两个代码隐藏文件吗?这样做有什么好处?
-
@AnthonyWJones 基本上 T4 生成我们网站的所有通用部分,绑定、加载和保存 - 但行为通常是特定于页面的 - 所以我们将其添加到代码隐藏中。我们有时需要在快速原型制作期间重新生成 T4 - 可能会消除定制化。如果它是孤立和安全的,那就太好了。
标签: asp.net vb.net code-behind partial-classes