0

複数選択ボックスで選択した値を取得しようとしています。Ajax 呼び出しを介して。

以下は私のテストアクションです

public ActionResult MultiSelect(String[] test)
{
    String[] arrayornot = test; //null being recieved. or the string if hardcoded
}

Jクエリ

    alert($('#county').val()); // London, Brim
    $.ajax({
        url: '@Url.Action("MultiSelect", "APITest")',
        type: 'GET',
        cache: false,
        data: { test: $('#county').val()},
        success: function (result) {
            $('#myDiv').html(result);
        }
    });

文字列にハードコードすると、正常に動作します。String[]またはStringエンドポイントで。カンマ区切りの文字列で渡すと、サーバー側で並べ替えることができます。または文字列配列の方が優れています。

4

4 に答える 4

1

string[]メソッド パラメーターで (文字列配列)を使用する代わりに。パラメータを使用しstringます。このコンマ区切りの文字列をサーバー側の配列に変換します。

次のコードを使用し、

サーバ側、

    public ActionResult MultiSelect(string test)
    {
        return View();
    }

JQueryコード、

$.ajax({
                url: '@Url.Action("MultiSelect", "OrderCreation")',
                type: 'GET',
                cache: false,
                data: { test: $('#county').val().toString() },
                success: function (result) {
                    $('#myDiv').html(result);
                }
            });
于 2013-09-24T09:39:18.017 に答える
1

私はあなたが抱えていたのと同じ問題を抱えていました。次のリンクで答えを見つけました。

http://dovetailsoftware.com/clarify/kmiller/2010/02/24/jquery-1-4-breaks-asp-net-mvc-actions-with-array-parameters

基本的に必要なことは、次の行を追加することです。値は配列として渡されます。

jQuery.ajaxSettings.traditional = true;

于 2014-02-06T20:08:51.783 に答える