.net 如何将viewdata中的复杂类型转换为查询字符串
我正在尝试在ASP.NET MVC应用程序中实现具有分页功能的高级搜索。我正在尝试在QueryString中传递搜索筛选器参数。 但由于搜索筛选器类型有点复杂,因此无法正确转换 帮我实现这个/ 这是我的行动.net 如何将viewdata中的复杂类型转换为查询字符串,.net,asp.net-mvc,pagination,.net,Asp.net Mvc,Pagination,我正在尝试在ASP.NET MVC应用程序中实现具有分页功能的高级搜索。我正在尝试在QueryString中传递搜索筛选器参数。 但由于搜索筛选器类型有点复杂,因此无法正确转换 帮我实现这个/ 这是我的行动 public ActionResult AdSearch(SearchFilter SearchTerm, int index = 0, int perPage = 1) { var customers = _repository.Search(SearchTerm, new Sel
public ActionResult AdSearch(SearchFilter SearchTerm, int index = 0, int perPage = 1)
{
var customers = _repository.Search(SearchTerm, new SelectSpec(perPage, index * perPage));
ViewData["SearchTerm"] = SearchTerm;
return View("ExpertSearchResult", customers);
}
这是搜索过滤器
public class SearchFilter
{
public IList<string> Countries { get; set; }
public IList<string> Languages { get; set; }
public IList<string> Industries { get; set; }
public IList<string> Expertises { get; set; }
}
对您来说,最好的解决方案是。使用json,您可以轻松地在javascript和c代码之间序列化和反序列化复杂类型 只需在javascript SearchFilter和c中创建对象。然后在类及其属性上放置json属性。然后使用json在javascript中序列化对象,并将其传递给控制器操作。在操作中,您应该有一个字符串参数来获取序列化的值,然后您应该要求json将参数反序列化到所需的对象 这是最常见的用法之一
var searchCriteria = new RouteValueDictionary(ViewData["SearchTerm"]);searchCriteria.Add("perPage", 1);searchCriteria.Add("index", 1);return Html.ActionLink("First", "Results", searchCriteria)