我有一个服务调用,它从我们的数据库中获取一组过滤的历史记录。
我在让我的过滤器进入我的主 mvc 调用时遇到了一些麻烦。
[AcceptVerbs("POST")]
public History History( HistoryFilters filters){......}
config.Routes.MapHttpRoute(
name: "DefaultActionRoute",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new {id = RouteParameter.Optional}
);
amplify.request.define('post', 'ajax', {
url: '/api/{controller}/{action}',
dataType: 'json',
type: 'POST',
cache: cache
});
//History Filter js
{
DateRange: { Start: ..., End: ...},
BetStatus: "unresolved",
TransactionTypes: "bets"
}
每次我拨打电话时,过滤器都会填充空值。JS 过滤器结构与我在 C# 中的 HistoryFilters 类的结构相匹配。如果我 JSON.stringify 我的过滤器并将我的 Api 调用更改为字符串,那么我明白了,但如果它可以为我转换它会很好。
谁能告诉我我错过了什么?
编辑
var amp = function(id, data) {
return $.Deferred(function(dfd) {
amplify.request({
resourceId: id,
data: data,
success: dfd.resolve,
error: dfd.reject
});
}).promise();
};
History: function (filters) {
return amp('post', { controller: 'user', action: 'history', '':filters});
}
public class HistoryFilters
{
public DateFilter DateRange { get; set; }
public string BetStatus { get; set; }
public string TransactionTypes { get; set; }
}
public class DateFilter
{
public string Start { get; set; }
public string End { get; set; }
}