0

MVC アプリケーションを作成し、ReportsApiController という名前の新しい WebApi コントローラーを追加しました。そして、アプリケーションで Session["ReportId"]=5 というセッションを作成し、Web Api メソッドからアクセスしようとしましたが、null 参照例外がスローされています。$.getJASON メソッドを使用して WebApi にアクセスしています。解決方法を教えてください。

4

2 に答える 2

3

はい、できます。Web API が、セッションに値を保存したのと同じ Web アプリケーションでホストされている場合:

HttpContext.Current.Session

しかし、あなたはそれをすべきではありません。これは、Web API のステートレスな性質に違反しています。この API に何らかの情報を渡す必要がある場合は、セッション状態に依存させないでください。この情報をモデルの形式で渡します。または、複雑なデータを渡したくない場合は、単にこの情報をいくつかの一般的なデータストア (データベースなど) に保持し、ID のみを Web API に渡して、データストアから値を取得できるようにします。

于 2012-10-03T08:56:43.103 に答える
1

Web API は STATELESS サービスであるため、Session はもはや適していません。Session、ViewState を使用してステートフルな Web サイトをシミュレートする ASP.NET Web フォームとは異なります。

ケースによって異なりますが、MemoryCache何かをキャッシュしたい場合は代わりに使用できます。

于 2012-10-03T08:54:28.300 に答える