0

我有一个带有搜索条件的网页。

一旦用户选择了他想要的内容并输入任何关键字进行搜索,他就会被重定向到另一个页面,该页面显示他的搜索结果。

这个会话对象包含他搜索的所有信息:

var ProjectSearchCriteria = (GBLProjectSearchCriteria) Session[GblConstants.SESSION_PROJECT_SEARCH_CRITERIA];

有没有办法让我将此对象传递给 API?

像这样:

[HttpGet]
public List<string> getEpisodes(GBLProjectSearchCriteria psc)
{
     var ProjectSearchResult = new ProjectSearchResultController();
     var GBLProjectSearchResultListData = ProjectSearchResult.GetProjectSearchResultList(psc);
     return (from GBLProjectSearchResult item 
             in GBLProjectSearchResultListData
             select item.Title).ToList();
}

我之所以要这样做是因为搜索条件很大并且已经存在,所以我不希望 API 有 38032823 个参数。

这甚至可能吗?我该怎么做?有什么选择吗?

4

2 回答 2

2

Web API 绑定来自 URI、查询字符串等或请求正文的参数。如果您想从其他任何东西绑定,尤其是在请求消息之外,您可以创建自己的参数绑定。看到这个。博客文章为类型创建了一个参数绑定,IPrincipal但您可以为“GBLProjectSearchCriteria”做类似的事情。

于 2013-08-08T01:29:21.973 回答
0

你有没有尝试过?

getEpisodes((GBLProjectSearchCriteria) Session[GblConstants.SESSION_PROJECT_SEARCH_CRITERIA]);

我有一个明显的问题是,既然您已经知道数据类型,并且正在对其进行类型转换,那么您为什么要使用 var?

var ProjectSearchCriteria = (GBLProjectSearchCriteria) ....

这不是更有意义吗?

GBLProjectSearchCriteria  ProjectSearchCriteria = (GBLProjectSearchCriteria) ....
于 2013-08-07T22:43:01.937 回答