AngularJS SmartTable & ASP.NET 映射错误
AngularJS SmartTable & ASP.NET mapping error
我尝试从 SmartTable 完成 asp.net 当前 tableState 的映射。
我使用 ASP.NET MVC 5.
我的 angularjs 电话是这样的:
usersService.getUsers({
start: start,
number: number,
tableState: tableState
}
).then(function(result) {
});
我的 queryString 参数如下所示:
number:10
start:0
tableState:{"sort":{"predicate":"location","reverse":false},"search":{"predicateObject":{"location":"gfdgd","service":"gfdgd","company":"gd","fullname":"john"}},"pagination":{"start":0,"number":10}}
当然我会尝试在 asp.net 中映射查询信息。我的控制器操作如下所示:
public JsonResult GetUsers(SmartTableRequestModel request)
{
return GetJsonResult(new
{
});
}
我尝试绑定的模型如下:
public class SmartTableRequestModel
{
public SmartTableQueryModel TableState { get; set; }
public int Number { get; set; } // number is well-binded
public int Start { get; set; } // the start is well-binded too
}
public class SmartTableQueryModel
{
[JsonProperty("sort")]
public SmartTableSortModel Sort { get; set; }
[JsonProperty("search")]
public SmartTableSearchModel Search { get; set; }
[JsonProperty("pagination")]
public SmartTablePaginationModel Pagination { get; set; }
}
public class SmartTableSortModel
{
[JsonProperty("predicate")]
public string Predicate { get; set; }
[JsonProperty("reverse")]
public bool Reverse { get; set; }
}
等等...
但我没有在 tableState 模型中映射任何内容。我的 SmartTableRequestModel 对象中的 TableState 属性 始终为空。
感谢您的关注,
拉兹万
尝试像下面这样发送请求数据。
{"request" :{"TableState": {"sort":{"predicate":"location","reverse":false},"search":{"predicateObject":{"location":"gfdgd","service":"gfdgd","company":"gd","fullname":"john"}},"pagination":{"start":0,"number":10}}},"Number":10,"Start":1}
问题是我的 getUsers 是一个 httpget 方法,你不能将模型传递给 httpget 方法。
所以我更改了资源以匹配 httppost 调用。
{
getUsers: { url: ci.domainPub + '/Management/GetUsers', method: 'POST', action: 'getUsers'},
},
并且在控制器中的动作将是:
[HttpPost]
public JsonResult GetUsers(SmartTableRequestModel request)
{
return GetJsonResult(new
{
});
}
并且通过这种机制,您可以 post smartTable 插件的 tableState 无需任何处理,并且 filter/order 基于服务器端的 tableState。
我尝试从 SmartTable 完成 asp.net 当前 tableState 的映射。
我使用 ASP.NET MVC 5.
我的 angularjs 电话是这样的:
usersService.getUsers({
start: start,
number: number,
tableState: tableState
}
).then(function(result) {
});
我的 queryString 参数如下所示:
number:10
start:0
tableState:{"sort":{"predicate":"location","reverse":false},"search":{"predicateObject":{"location":"gfdgd","service":"gfdgd","company":"gd","fullname":"john"}},"pagination":{"start":0,"number":10}}
当然我会尝试在 asp.net 中映射查询信息。我的控制器操作如下所示:
public JsonResult GetUsers(SmartTableRequestModel request)
{
return GetJsonResult(new
{
});
}
我尝试绑定的模型如下:
public class SmartTableRequestModel
{
public SmartTableQueryModel TableState { get; set; }
public int Number { get; set; } // number is well-binded
public int Start { get; set; } // the start is well-binded too
}
public class SmartTableQueryModel
{
[JsonProperty("sort")]
public SmartTableSortModel Sort { get; set; }
[JsonProperty("search")]
public SmartTableSearchModel Search { get; set; }
[JsonProperty("pagination")]
public SmartTablePaginationModel Pagination { get; set; }
}
public class SmartTableSortModel
{
[JsonProperty("predicate")]
public string Predicate { get; set; }
[JsonProperty("reverse")]
public bool Reverse { get; set; }
}
等等...
但我没有在 tableState 模型中映射任何内容。我的 SmartTableRequestModel 对象中的 TableState 属性 始终为空。
感谢您的关注, 拉兹万
尝试像下面这样发送请求数据。
{"request" :{"TableState": {"sort":{"predicate":"location","reverse":false},"search":{"predicateObject":{"location":"gfdgd","service":"gfdgd","company":"gd","fullname":"john"}},"pagination":{"start":0,"number":10}}},"Number":10,"Start":1}
问题是我的 getUsers 是一个 httpget 方法,你不能将模型传递给 httpget 方法。
所以我更改了资源以匹配 httppost 调用。
{
getUsers: { url: ci.domainPub + '/Management/GetUsers', method: 'POST', action: 'getUsers'},
},
并且在控制器中的动作将是:
[HttpPost]
public JsonResult GetUsers(SmartTableRequestModel request)
{
return GetJsonResult(new
{
});
}
并且通过这种机制,您可以 post smartTable 插件的 tableState 无需任何处理,并且 filter/order 基于服务器端的 tableState。