[英]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.