私は非常に奇妙な問題だと思うものを抱えており、それが見過ごされていることを望んでいます。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になります。それが理にかなっていることを願っています。