【发布时间】:2014-01-13 02:33:43
【问题描述】:
我已经在谷歌上搜索了大约一个小时,但没有找到示例,所以我想我会在这里问。
我正在用 webapi 替换标准 mvc 控制器,并且路由出现问题,由于组织原因,我已更改名称,但它们仍然有效。
我的 webapi 当前在控制器文件夹中被称为 SystemAPI - 我希望它具有与理想情况下指向它的 url 不同的名称。
我需要指向它的 url 是 /v1Controller/{id} 我无法更改 v1Controller url,因为它是我无法控制的应用程序的固定点
我目前的编码尝试是
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DocumobiApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "V1Controller",
routeTemplate: "v1Controller/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
// To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
// For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
//config.EnableQuerySupport();
var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().FirstOrDefault();
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}
}
我得到了回应
"message":"No HTTP resource was found that matches the request URI 'http://localhost:38685/v1Controller'.","messageDetail":"No route providing a controller name was found to match request URI 'http://localhost:38685/v1Controller'"}
我确信它是相当明显的,但我一辈子都无法弄清楚。
干杯,
史蒂文
【问题讨论】:
标签: asp.net-mvc asp.net-web-api