我必須要通過的過濾器陣列是這樣的:如何訪問MVC控制器的Javascript多維數組
腳本代碼:
return { CustomFilter: options.filter.filters };
++++++++++++++ ++++++++++++++++++++++++++++++++++
從螢火蟲:
CustomFilter[0][field] ItemName
CustomFilter[0][operator] startswith
CustomFilter[0][value] testing Value
CustomFilter[1][field] BrandName
CustomFilter[1][operator] startswith
CustomFilter[1][value] testing Value 1
發佈值是:
但我無法在控制器端收到這些信息。
我想是這樣的:
public ActionResult ReadOperation(string[][] CustomFilter)
也是這樣:
public ActionResult ReadOperation(Filter[] CustomFilter)
public class Filter
{
public string field { get; set; }
public string @operator { get; set; }
public string value { get; set; }
}
但沒有奏效。請建議。
謝謝。
解使用JSON反序列化實測值
Script代碼變更爲:在控制器
using Newtonsoft.Json;
public ActionResult ReadOperation(MyViewModel model)
{
var filters = JsonConvert.DeserializeObject(model.CustomFilter, typeof(CustomFilter[]));
}
public class MyViewModel
{
public string Filter { get; set; }
public string group { get; set; }
public int page { get; set; }
public int pageSize { get; set; }
public int sort { get; set; }
}
public class CustomFilter
{
public string field { get; set; }
public string @operator { get; set; }
public string value { get; set; }
}
結果視圖:
return { CustomFilter: JSON.stringify(CustomFilter) };
控制器代碼變更爲
你的代碼是否可以編譯? –
是的,它也顯示計數2,因爲我傳遞了2個過濾器,但字段,運算符和值的值顯示爲空。 – Gerry
你可以發佈原始的JSON嗎? Firebug應該顯示發佈內容。 –