0

投票アプリケーションを作成しています。ユーザーが質問を入力し、ボタンをクリックして、回答のテキストボックスを動的に作成します。

次に、次のコードを使用してフォームをシリアル化します。

var formData = $("#form1").find("input,textarea,select,hidden").not("#__VIEWSTATE,#__EVENTVALIDATION").serializeObject();

jQuery.ajaxを使用して、シリアル化された情報をWebMethodに送信します。data: formData

これが私の問題の始まりです。静的なフォームの場合、私のwebmethodは次のようになります。

<WebMethod()>_
Public Shared Function addPoll(byval question as string, byval answer1 as string, etc...)

それらは動的であるため、どのようにパラメーターを定義し、webmethod関数でそれらをループすることができますか?

どんな助けもいただければ幸いです...

4

1 に答える 1

0

リクエストごとに、ジェネリックリストを使用してデータを引数として渡す例(VB.NET構文がうまくいかない場合はご容赦ください。私は何年もの間C#に集中してきました)

まず、オブジェクトを定義します。

Public Class QA
    Public Property Question() As String
        Get
            Return m_Question
        End Get
        Set
            m_Question = Value
        End Set
    End Property
    Private m_Question As String
    Public Property Answer() As String
        Get
            Return m_Answer
        End Get
        Set
            m_Answer = Value
        End Set
    End Property
    Private m_Answer As String
End Class

次に、Webメソッドを定義します。

<WebMethod> _
Protected Sub addPoll(args As IEnumerable(Of QA))
    For Each qaPair As QA In args
        'do stuff with qaPair
    Next
End Sub

jQueryは、このオブジェクトを次のようなオブジェクトの配列を表すJSON文字列としてバックエンドに渡す必要があります。

[
    { Question: "what is the answer to life, the universe, and everything?",
        Answer: "42" },
    { Question: "what is the average velocity of a laden swallow?",
        Answer: "African or European?" }
]

これは、 JavaScriptSerializerを使用してQAオブジェクトのリストに解析できます。

うまくいけば、それはあなたのためにそれをクリアしますか?

于 2012-09-08T01:08:44.913 に答える