通过网络形式将数据传递给对象

问题描述:

我想实现一些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) 
+0

感谢Markus,不幸的是,这并没有解决问题。原来的帖子已被编辑,以添加尽可能多的信息,因为我有。 – gem

正如我怀疑......一些不那么明显但很简单的东西。我的网站包含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 

如果问题是另一回事,请提供更多一些细节。