C# 如何使用attributerouting使用自定义路由?
我有一系列使用AttributeRouting定义的自定义路由。我在控制器中有一个函数,它试图访问/API/GetBatchItems上的其中一个API函数 GetBatchItems是控制器ApicController的一个功能,类似于:C# 如何使用attributerouting使用自定义路由?,c#,asp.net-mvc-4,attributerouting,C#,Asp.net Mvc 4,Attributerouting,我有一系列使用AttributeRouting定义的自定义路由。我在控制器中有一个函数,它试图访问/API/GetBatchItems上的其中一个API函数 GetBatchItems是控制器ApicController的一个功能,类似于: [RouteArea("api")] public sealed class APIController : ApiController{ [GET("GetBatches")] public IEnumerable<PRAT.Mode
[RouteArea("api")]
public sealed class APIController : ApiController{
[GET("GetBatches")]
public IEnumerable<PRAT.Models.EF.EFBatchItem> GetBatches() { ... }
}
使示例代码正常工作 您现有的代码示例需要进行两项更改才能正常工作:
config.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
string url = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/API/GetBatches";
var client = new HttpClient();
string url = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/GetBatches";
var result = client.GetAsync(url).Result;
var content = result.Content;
var model = content.ReadAsAsync<IEnumerable<MyViewModel>>().Result;
if (model == null) return View();
else return View(model);
请提供示例代码以说明您的陈述“在另一个控制器中,我正在尝试获得结果”?第二个代码示例来自另一个控制器。我正在创建一个HttpClient来获取数据。1。什么是可以直接浏览的url?http:///api/GetBatches? 2.如果两个控制器都在同一个站点上,为什么一个控制器通过http与另一个控制器通信?为什么不让第二个控制器引用第一个控制器的GetBathces()方法呢?直接浏览时,它是/api/GetBatches。我确信问题可能是我正在执行config.routes.maphttproute,但我不知道如何将attributerouting自定义路由添加到httpconfiguration。
var client = new HttpClient();
string url = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/GetBatches";
var result = client.GetAsync(url).Result;
var content = result.Content;
var model = content.ReadAsAsync<IEnumerable<MyViewModel>>().Result;
if (model == null) return View();
else return View(model);
var model = (new APIController()).GetBatches();
if (model == null) return View();
else return View(model);