2016-09-05 9 views
0

ASP.NET CoreまたはASP.NET Core MVCでPROPFINDまたはMKCOLなどのよりエキゾチックなHTTP動詞を使用したリクエストを処理する方法を実装オプションで探しています。 ASP.NET MVCのコアでASP.NETコアでPROPFIND HTTP Verbリクエスト(またはその他)を処理する方法は?

あなたはこれらのHTTP動詞が十分であるRESTのAPIやWebアプリケーションの

[HttpGet] 
[HttpPut] 
[HttpPost] 
[HttpDelete] 
[HttpHead] 
[HttpOptions] 
[HttpPatch] 

であなたのアクションメソッドを飾ることができます。 WebDavの場合、例えばPROPFINDまたはMKCOLの動詞も何らかの形で処理する必要があります。

上記のものより多くのHTTP動詞をサポートするためにASP.NET Core MVCを拡張する可能性はありますか? または、自分のミドルウェアコンポーネントを作成する方がWebDAVの機能をASP.NET Coreアプリケーションに追加する方が良いと思いますか?

私はいくつかのアイデアを得るためにASP.NETコアソースリポジトリを調べました。しかし、私は瞬間に立ち往生しています。

答えて

1

解決策は思ったより簡単です。コントローラ動詞をこのようなHTTP動詞で呼び出すことができます

public class WebDavController : Controller 
{ 
    [HttpGet] 
    [Route("/dav/{fileName}")] 
    public IActionResult Get(string fileName) 
    { 
     // a classic Get method 
     .... 
    } 

    [Route("/dav/{fileName}")] 
    public IActionResult Propfind(string fileName) 
    { 
     // this is invoked if http verb is PROPFIND 
     // (framework searches for corresponding action name) 
     .... 
    } 

    [AcceptVerbs("LOCK")] 
    [Route("/dav/{fileName}")] 
    public IActionResult MyLockAction(string fileName) 
    { 
     // this is invoked if http verb is LOCK 
     // (framework searches annotated action method) 
     .... 
    } 

} 
関連する問題