2012-09-17 30 views
18

Tôi vừa cài đặt Visual Studio 2012 và bắt đầu kiểm tra MVC 4 và Web Api. Tôi đã tạo một ứng dụng MVC 4 mới với API Web. Dựa trên một số ví dụ và hướng dẫn tôi bắt đầu cấu hình các tuyến đường của tôi với:System.Web.Routing.RouteCollection không chứa definiton cho "MapHttpRoute" - VS 2012, Web API

routes.MapHttpRoute(
       name: "Controller only", 
       routeTemplate: "api/{controller}" 
      ); 

Tuy nhiên, có kết quả trong một lỗi mà RouteCollection không chứa một định nghĩa cho MapHttpRoute. Tôi có thiếu một số DLL được cài đặt? Theo như tôi có thể thấy tôi có tất cả các DLL và phiên bản được cài đặt đúng.

Trả lời

28

tôi đã giải quyết nó bằng cách thêm một tham chiếu đến System.Web.Http trong RouteConfig.cs

+0

Tôi có thêm tài liệu tham khảo này. nhưng vẫn có lỗi, vui lòng trợ giúp xem xét [tại đây] (http://stackoverflow.com/questions/13908970/assembly-reference-missing-when-migration-asp-net-mvc4-from-beta-to-4) –

+2

@ Joe.wang, bạn đã thêm bằng System.Web.Http trong RouteConfig.cs chưa? – sTodorov

+0

OMG ... doh! ... Cần 'sử dụng System.Web.Http' –

25

Hãy thử tham khảo: System.Web.Http và System.Web.Http.WebHost.dll

Sau đó, thêm một bằng tuyên bố cho không gian tên: System.Web.Http

Lưu ý: Nó cũng có thể là sự intellisense của bạn đang hoạt động. Trong trường hợp đó, bạn chỉ cần tiếp tục và nhập mã của mình theo cách thủ công và tạo.

Hy vọng rằng sẽ giúp

+6

Thêm System.Web.Http.WebHost.dll đã khắc phục sự cố của tôi. – Scottie

+0

Intellisense đã hành động cho tôi. – sparebytes

+0

Để có System.Web.Http sẵn có trong danh sách tham chiếu, trước hết tôi cần áp dụng gói 'Microsoft.AspNet.WebApi.Core' cho dự án của tôi thông qua trình quản lý gói NuGet. – sonyisda1

4

Chỉ cần thêm bằng System.Web.Mvc; giải quyết vấn đề của tôi

+0

Đây là vấn đề đối với tôi. Tôi đã có một danh sách các phương thức như MapHttpRoute và MapOwinRoute nhưng tôi chỉ muốn MapRoute, mà không có. Cảm ơn! – VictorySaber

Các vấn đề liên quan