[英]Asp.net MVC5 json value binding to scafolding
我正在使用SyncFusion Asp.Net MVC網格,在此我嘗試在服務器端進行過濾,並且發送到服務器的json如下所示
但是在ViewModel中,對象屬性以null的形式出現而不是綁定
傑森
{"select":["Area","Id"],"where":[{"isComplex":false,"field":"Area","operator":"startswith","value":"test","ignoreCase":true}],"sorted":[{"name":"Area","direction":"ascending"}]}
我創建了如下模型,並將其傳遞給控制器,但未綁定。
public class UserViewModel
{
public int skip { get; set; }
public int take { get; set; }
public Sort sorted { get; set; }
public string[] group { get; set; }
//Grid Action Params;
public string action { get; set; }
public string key { get; set; }
public string keyColumn { get; set; }
public string[] select { get; set; }
public Search search { get; set; }
public Where where { get; set; }
public ApplicationUser value { get; set; }
}
public class Where
{
public bool isComplex { get; set; }
public string field { get; set; }
public string @operator { get; set; }
public string @value { get; set; }
public bool ignoreCase { get; set; }
}
public class Sort
{
public string name { get; set; }
public string direction { get; set; }
// "sorted":[{"name":"Area","direction":"ascending"}],"group":["Area"]
}
public class Search
{
public string[] fields { get; set; }
public string @operator { get; set; }
public string key { get; set; }
public bool ignoreCase { get; set; }
}
控制器方式
public async Task<ActionResult> DataSource(UserViewModel editParams)
{
}
您發送的JSON似乎根本與您的視圖模型不匹配:
{
"select": [
"Area",
"Id"
],
"where": [
{
"isComplex": false,
"field": "Area",
"operator": "startswith",
"value": "test",
"ignoreCase": true
}
],
"sorted": [
{
"name": "Area",
"direction": "ascending"
}
]
}
考慮編寫一個符合以下結構的視圖模型:
public class UserViewModel
{
public string[] Select { get; set; }
public Where[] where { get; set; }
public Sorted[] sorted { get; set; }
}
public class Where
{
public bool IsComplex { get; set; }
public string Field { get; set; }
public string Operator { get; set; }
public string Value { get; set; }
public bool IgnoreCase { get; set; }
}
public class Sorted
{
public string Name { get; set; }
public string Direction { get; set; }
}
現在您的控制器操作可以將此視圖模型用作參數:
public async Task<ActionResult> DataSource(UserViewModel editParams)
{
...
}
我對您似乎正在使用的SyncFusion Asp.Net MVC grid
不熟悉,但是您應該確保Content-Type: application/json
請求HTTP標頭也與AJAX請求一起發送,以便ASP.NET MVC模型綁定程序知道從客戶端發送的內容類型。 使用Web瀏覽器的開發人員工具欄或Fiddler之類的工具來檢查從客戶端發送的請求,並確保存在此標頭。 否則,將不會綁定視圖模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.