通过网络形式将数据传递给对象
问题描述:
我想实现一些VB.NET代码,它从Web窗体获取信用卡详细信息并将它们传递给付款对象。我已经在另一个页面上完成了个人详细信息表单的工作,这很好。通过网络形式将数据传递给对象
然而,在此页我收到Too many arguments to Public Sub New()
错误以下行:
Dim cardDetails As Payment = New Payment(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text)
这是没有任何意义的部分。它需要三个参数,我发送了三个参数。真的没有太多的信息要提供。下面是背后的代码和付款类。
在Payment.vb
:
Imports Microsoft.VisualBasic
Public Class Payment
'declare variables, private
Private cardNo As String
Private expiryMth As String
Private expiryYr As String
''get and set for each variable
Private Property cardNumber() As String
Get
Return cardNo
End Get
Set(value As String)
cardNo = value
End Set
End Property
Private Property expiryMonth() As String
Get
Return expiryMth
End Get
Set(value As String)
expiryMth = value
End Set
End Property
Private Property expiryYear() As String
Get
Return expiryYr
End Get
Set(value As String)
expiryYr = value
End Set
End Property
'no argument constructor
Public Sub New()
End Sub
''sub methods/functions do stuff and return values
Public Overrides Function ToString() As String
Return cardNo
End Function
Public Sub New(ByVal cardNumber As String, ByVal expiryMonth As String, ByVal expiryYear As String)
End Sub
End Class
而在Payment.aspx.vb
我:
Protected Sub Submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Submit.Click
'add the card details from the form to the object.
Dim cardDetails As Payment = New Payment(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text)
答
正如我怀疑......一些不那么明显但很简单的东西。我的网站包含Payment.aspx,其中包含带有部分支付类的Payment.aspx.vb后面的代码。这造成了我在创建对象时所指的付款方面的困惑。
要解决我复制从Payment.vb我的代码到一个名为Card.vb新类,并改变创建对象时的参考:重建解决方案Dim cardDetails As **Card**= New **Card**(Me.CardNumber.Text, Me.CardExpiryMonth.Text, Me.CardExpiryYear.Text)
和错误消失。
答
你的构造应该是:
Public Sub New(ByVal cardNumber As String, ByVal expiryMonth As String, ByVal expiryYear As String)
Me.cardNumber = cardNumber
Me.expiryMonth = expiryMonth
Me.expiryYear = expiryYear
End Sub
如果问题是另一回事,请提供更多一些细节。
感谢Markus,不幸的是,这并没有解决问题。原来的帖子已被编辑,以添加尽可能多的信息,因为我有。 – gem