Tôi cần có bộ điều khiển có cùng tên trong không gian tên khác nhau. Các bộ điều khiển tôi đang gặp là:Bộ điều khiển có cùng tên trong không gian tên khác nhau ASP.NET WEB API
namespace BSB.Messages.Controllers.V1
{
public class MessagesController : ApiController {...}
}
namespace BSB.Messages.Controllers.V2
{
public class MessagesController : ApiController {...}
}
Tôi cố gắng để cấu hình nó trong đầu lên. Nhưng khi tôi thực hiện cuộc gọi, nó hiển thị lỗi:
Nhiều loại được tìm thấy khớp với bộ điều khiển có tên 'thông điệp'. Điều này có thể xảy ra nếu tuyến đường dịch vụ yêu cầu này ('api/{namespace}/{controller}/{action}/{id}') đã tìm thấy nhiều bộ điều khiển được xác định có cùng tên nhưng khác nhau về không gian tên, trong đó không được hỗ trợ
chức năng Đăng ký của tôi trong WebApiConfig
là:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute("DefaultApi", "api/{namespace}/{controller}/{action}/{id}", new { id = UrlParameter.Optional });
}
chức năng My RegisterRoutes
là:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
var r = routes.MapRoute(
name: "Default",
url: "v1/messages/{action}/{id}",
defaults: new { id = UrlParameter.Optional },
namespaces: new[] { "BSB.Messages.Controllers.V1" }
);
r.DataTokens["Namespaces"] = new string[] { "BSB.Messages.Controllers.V1" };
var r1 = routes.MapRoute(
name: "V2",
url: "v2/messages/{action}/{id}",
defaults: new { id = UrlParameter.Optional },
namespaces: new[] { "BSB.Messages.Controllers.V2" }
);
r1.DataTokens["Namespaces"] = new string[] { "BSB.Messages.Controllers.V2" };
}
Tôi đã gọi cả hai chức năng từ Global.asax
Bất kỳ một thể giúp tôi trong việc này? Những gì tôi đã bỏ lỡ ở đây?
Cảm ơn,
Priya
thử này 'var r1 = routes.MapRoute ( tên: "V2", url: "v2/tin nhắn/{action}/{id}", giá trị mặc định: mới {controller =" v2 ", id = UrlParameter.Optional}, không gian tên: new [] {" BSB.Messages.Controllers.V2 "} );' –
Khuôn khổ rõ ràng nói rằng nó không được hỗ trợ. – Nkosi