1

私は非常に奇妙な問題だと思うものを抱えており、それが見過ごされていることを望んでいます。ajaxを使用していくつかの配列をmvcコントローラーに渡そうとしています。コンソール出力から、正しい値が投稿されていることがわかりますが、そのうちの1つだけが正しくバインドされ、nullになるだけですが、他の2つの配列が値を持っています。他の 2 つが null の場合、KnownTo は正しく動作します。

ここに私のJavaScriptコードがあります

var sectors = new Array();
var offices = new Array();
var KnownTo = new Array();

クリックイベントで、ページ上の特定の要素のデータ属性をチェックして、これらの配列に追加します。次に、リクエストを実行します。

postData = {
            'Sector': sectors,
            'Offices': offices, 
            'KnownTo': KnownTo 
        };

$.ajax({
        type: 'POST',
        contentType: "application/json;charset=utf-8",
        url: 'Controller/SearchActivities',
        dataType: 'json',
        data: JSON.stringify(postData),
        success: function (result) {
           console.log(result)
        },
        failure: function (result) {
           console.log(result)
        }
    });

ajax 呼び出しの後、firebug に投稿された正しい値が表示されます。

そしてコントローラーにたどり着く…

 [HttpPost]
    public JsonResult SearchActivities(FilterPageViewModel model)
    {
           //something
    }

セクターとオフィスは正しく入力されていますが、私の KnownTo は正しくありません。ここに FilterPageViewModel があります

public class FilterPageViewModel
{
    public int[] Sector{ get; set; }
    public int[] Offices{ get; set; }
    public int[] KnownTo{ get; set; }
}

ここで奇妙なことに、KnownTo のみに値が投稿され、他の 2 つが null の場合、KnownTo は正しくバインドされますが、他の配列のいずれかに値がある場合、KnownTo は何があってもnullになります。それが理にかなっていることを願っています。

4

1 に答える 1

0

これを修正するには、KnownTo配列の名前を別の名前に変更するだけです。私はKnownToをある種の予約語だと推測しています。

于 2013-02-27T16:19:42.637 に答える