我正在开发一个使用 jquery 和 ajax 进行搜索和更新页面的 MVC4 应用程序。通常要搜索,我会创建一个 javascript 对象并将其发布到我的 ApiController,其中发布参数映射到我的 .NET 搜索输入对象。
我需要将相同的 javascript 搜索对象发送到服务器,但是作为 GET 请求,所以我使用 $.param() 来序列化对象。
有没有一种简单的方法可以将查询字符串反序列化为我的 .NET 搜索输入对象?
这是创建的查询字符串的简化版本:
Search[ListId]=41&Search[Query]=test&Search[SortBy]=Location&Search[SortDirection]=Descending&Search[UserTypes][]=2&Search[UserTypes][]=5&Search[UserTypes][]=9&Export[PDF]=false&Export[XLS]=true&Export[XML]=true
这里是我试图反序列化的 SearchInput 对象:
public class SearchInput
{
public Search Search { get; set; }
public Export Export { get; set; }
}
public class Search
{
public int ListId { get; set; }
public string Query { get; set; }
public ListViewConfig.SortBy SortBy { get; set; }
public SortDirection SortDirection { get; set; }
public List<int> UserTypes { get; set; }
}
public class Export
{
public bool PDF { get; set; }
public bool XLS { get; set; }
public bool XML { get; set; }
}
SortBy 和 SortDirection 是枚举。