1

新しいプロジェクトを作成し、選択したASP.NETコアWebアプリケーション(.NETコア)を選択し、Webアプリケーション、個々のユーザーアカウントを選択しました。あなたのように、(既存のaspnetcore MVCプロジェクトにWebAPIを追加

すべてが良好であり、プロジェクトは完璧に動作しますが、私はhttp://website.com/HomeはMVCで、http://website.com/api/whateverは私のAPIであり、私はそれらの両方が同じ認証データベースを使用するようになるように、このプロジェクトにWebAPIの機能を追加したいですMVCサイトに登録してAPIに認証することができます)。

私がそれを避けることができれば、2番目のプロジェクトをソリューションに追加したくありません。

誰かがWebAPI 4を既存のMVCプロジェクトに追加する方法を投稿しましたが、手順1でこれらの手順が失敗し、ASP.Net Core MVCプロジェクトには存在しないGlobal.asaxにxを追加しました。

助けてください。

答えて

5

ASP.NETコアControllerは、既にMVCとWebAPIの両方をサポートしています。 ASP.NET Coreでは、これらのフレームワークが結合されました。したがって、コントローラのアクションを宣言するだけで、ViewResultを返すのではなく、REST APIモデルを返すだけです。

例:

public class ValuesController : Controller 
{ 
    [HttpGet] 
    public List<string> Get() 
    { 
     return new List<string> { "Hello", "World" }; 
    } 

    [HttpGet] 
    [Route("values/{valueName}")] 
    public string Get(string valueName) 
    { 
     return valueName; 
    } 
} 

これは、構成に応じて、GET: /api/valuesGET /api/values/ + valueNameの下でアクセス可能でなければなりません。これは最も一般的な使用例です。

幸運。

+0

私はクラスを作成し、足場のアイテムを追加し、コンテキストなどを設定してから、これを取得しました... モデルを取得するためにDbContextインスタンスを作成する際にエラーが発生しました。このオブジェクトに対して定義されたパラメータのないコンストラクタはありません。 –

+0

またはコントローラ、エンティティフレームワークを使用してアクションを持つAPIコントローラを作成し、コンテキストを設定し、同じエラーを返します。 –

+0

あなたは正しく、読み取り/書き込みのアクションで項目APIコントローラを選択しました。そして、それを行いました。ありがとうございました:)回答が受け入れられました。 –

関連する問題