簡體   English   中英

c#webapi httpget屬性

[英]c# webapi httpget attribute

我正在關注本教程:

http://www.asp.net/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing

並查看“獲取書籍詳細信息”部分。

我看到這段代碼:

[HttpGet("api/books/{id}/details")]
public BookDetailDto GetBookDetail(int id)
{
}

但是我遇到了錯誤

HttpGet有0個參數,但是用1個參數調用

(我在ASP .net 4.0 WebAPI上)

指定路徑的/詳細信息部分的新方法是什么?


我的努力:

  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Providers.Core" version="1.2" targetFramework="net40" />
  <package id="Microsoft.AspNet.Providers.LocalDB" version="1.1" targetFramework="net40" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20715.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.HelpPage" version="4.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.OData" version="4.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.Tracing" version="4.0.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" />

嘗試升級到WEBAPI的測試版

update-Package : Could not install package 'Microsoft.AspNet.WebApi.Client 5.0.0-beta2'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.0', but the package does not contain any assembly references or content files
that are compatible with that framework. For more information, contact the package author.

Update-Package : Updating 'Microsoft.AspNet.Mvc 4.0.30506.0' to 'Microsoft.AspNet.Mvc 5.0.0-beta2' failed. Unable to find a version of 'Microsoft.AspNet.Mvc.FixedDisplayModes' that is compatible with 'Microsoft.AspNet.Mvc 5.0.0-beta2'.
Update-Package : Updating 'Microsoft.AspNet.Mvc 4.0.30506.0' to 'Microsoft.AspNet.Mvc 5.0.0-beta2' failed. Unable to find a version of 'Microsoft.AspNet.Mvc.FixedDisplayModes' that is compatible with 'Microsoft.AspNet.Mvc 5.0.0-beta2'.

通過重新定位到4.5並刪除FixedDisplayModes包來修復這些問題

您的包列表顯示您正在使用ASP.NET Web API 1. ASP.NET Web API 2中提供了對屬性路由的支持,它是Visual Studio 2013 Preview的一部分,並且在測試版中也是如此。 如果你想玩它,你有三種方法可以做到這一點:

  • 將程序包管理器窗口值頂部的下拉列表從“僅穩定”更改為“包含預發布”並將程序包升級到Microsoft ASP.NET Web API 5.0.0-beta2 (有時Microsoft ASP.NET MVC Fixed DisplayModes程序包正在阻止更新,所以你可能會嘗試先刪除它)
  • 將項目切換到ASP.NET Web API Nightly Builds
  • 下載並安裝Visual Studio 2013 Preview,其中包含適當的參考和新模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM