4

WebAPI 用の AttributeRouting NuGet パッケージをダウンロードしたところ、コントローラー内で問題が発生しました。私はそれを使用する方法は次のようなものを持つことだと思った:

 public class InboxController : ApiController
    {
        private IInboxService _inboxService;

        public InboxController(IInboxService inboxService)
        {
            _inboxService = inboxService;            
        }

        public IEnumerable<MessageModel> GetAll()
        {
            return _inboxService.GetAllMessages();
        }

      [HttpGet("Inbox/Count")]
            public int GetInboxCount()
            {
                return _inboxService.GetMessageCount();
            }
}

ただし、次のエラーが表示されます: エラー 2 'System.Web.Http.HttpGetAttribute' には 1 つの引数を取るコンストラクターが含まれていません

私はこれをかなり迅速に立ち上げて実行する必要があります。HttpGet 属性にオーバーロードされたコンストラクターがない理由はありますか?

アップデート

    [GET("Inbox/EnquiryCount")]
    public EnquiryCountModel GetEnquiryCounts()
    {
        var model = new EnquiryCountModel();
        model.EnquiryCount = _inboxService.GetCustomerEnquiriesCount();
        model.EnquiryResponseCount = _inboxService.GetCustomerEnquiryResponseCount();
        return model;
    }

ルート内:

routes.MapHttpRoute("InboxEnquiryApi", "api/inbox/{action}", new { Controller = "Inbox" }, null, new WebApiAuthenticationHandler(GlobalConfiguration.Configuration));

「api/inbox/EnquiryCount」の URL にアクセスすると、次のエラーが表示されます。

**No HTTP resource was found that matches the request URI 'http://localhost:49597/api/inbox/enquirycount'**
4

2 に答える 2