我觉得我错过了一些小事,但我无法理解我的生活。我有一个ActionResult来从视图中接收一些过滤器。我通过ajax发送给json:
function filter() {
var startDate = wijmo.Control.getControl('#StartDate').value;
var endDate = wijmo.Control.getControl('#EndDate').value;
var stringData = JSON.stringify({ 'StartDate': startDate, 'EndDate': endDate, 'SalesPersonId': '', 'Status': '', 'NewIncumbent': '' });
$.ajax({ url: "@Url.Action("Filter")",
type: 'POST',
async: false,
contenttype: 'application/json',
data: stringData,
dataType: "json"
});
};
我有一个接收数据的课程:
private class FilterResult
{
[JsonProperty("StartDate")]
DateTime StartDate { get; set; }
[JsonProperty("EndDate")]
DateTime EndDate { get; set; }
[JsonProperty("SalesPersonId")]
int? SalesPersonId { get; set; }
[JsonProperty("Status")]
int? Status { get; set; }
[JsonProperty("NewIncumbent")]
bool? NewIncumbent { get; set; }
}
进入ActionResult时填写数据:
public ActionResult Filter(FilterResult results)
{
}
当我尝试以任何有意义的方式使用结果时,唯一的选项是Equals,GetHashCode,GetType和ToString。
这让我觉得这个类没有被识别,但是在Locals窗口中我可以看到结果中的数据。 FilterResults位于同一个控制器文件中。有谁知道这可能导致什么?
答案 0 :(得分:1)
默认情况下,您的类成员(属性)的访问级别为private
。您需要创建属性public
:
private class FilterResult
{
[JsonProperty("StartDate")]
public DateTime StartDate { get; set; }
[JsonProperty("EndDate")]
public DateTime EndDate { get; set; }
[JsonProperty("SalesPersonId")]
public int? SalesPersonId { get; set; }
[JsonProperty("Status")]
public int? Status { get; set; }
[JsonProperty("NewIncumbent")]
public bool? NewIncumbent { get; set; }
}
答案 1 :(得分:1)
public class FilterResult
{
[JsonProperty("StartDate")]
public DateTime StartDate { get; set; }
[JsonProperty("EndDate")]
public DateTime EndDate { get; set; }
[JsonProperty("SalesPersonId")]
public int? SalesPersonId { get; set; }
[JsonProperty("Status")]
public int? Status { get; set; }
[JsonProperty("NewIncumbent")]
public bool? NewIncumbent { get; set; }
}