2016-06-13 3 views
2

管理者が使用していない場合、web apiコントローラからmvcホームコントローラにリダイレクトする方法。アイデンティティロールが管理者でない場合、Web ApiからMVCコントローラへリダイレクト

// GET api/adminleave 
     public IEnumerable<ObjectModel> GetPendingLeave() 
     { 
      if (!User.IsInRole("Admin")) 
      { 
       var response = Request.CreateResponse(HttpStatusCode.Moved); 
       response.Headers.Location = new Uri("example.com"); 
       return response; 
      } 
     List<ObjectModel> obj=new List<ObjectModel>(); 
     return obj; 

     } 

私は上記のように試しましたが、エラーが発生しました。

エラー27は、暗黙のうちに 'System.Collections.Generic.IEnumerable' にタイプ 'System.Net.Http.HttpResponseMessage' を変換できません。 \ WebPortal \ WebApplication1と\コントローラ\休職\ AdminLeaveController.cs 34 24のWebApplication私は戻っていたとき、私は、フォームのHOM WEBAPIコントローラをリダイレクトすることができますどのように

: 明示的な変換は(?あなたが キャストが欠落している)Fが存在しますWebAPIコントローラのオブジェクトリスト

答えて

1

MVC/WebAPIの関係で何をしようとしていますか。 MVCではWebAPIを使用してサーバー全体がWebサービスを提供しますが、APIを作成するクライアントAPIの関係に依存しています。

これらのアプローチをリダイレクトの面で混在させることはできません。できることは、この特定のシナリオではリダイレクトが必要であることをクライアントに知らせることです(ただしこれは理想的な解決策ではありません)。クライアント側でリダイレクトを実行します。

「誰でも」使用できるAPIを作成すると、そのようなリダイレクトを実行するのは正しいことですか?もう1つの選択肢はMVCコントローラーでアクションを呼び出して結果を得ることですが、ユーザーが "Admin"ロールを持っているときに別のページに行きたいと思っています。

関連する問題