0

検索条件を含む Web ページがあります。

ユーザーが必要なものを選択し、検索するキーワードを入力すると、検索結果を表示する別のページにリダイレクトされます。

このセッション オブジェクトには、彼の検索に関するすべての情報が含まれています。

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]);

私が持っている明白な質問の 1 つは、データ型を既に知っていて、それに型キャストしているのに、なぜ var を使用しているのかということです。

var ProjectSearchCriteria = (GBLProjectSearchCriteria) ....

これはもっと理にかなっていませんか?

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