我有2個控制器,其中1是的WebAPI:Url.Action用的WebAPI和控制器路由
public class ListController : ApiController
{
public object Remove(string ListId, List<string> ItemIds)
{
//removed
}
}
public class ListController : Controller
{
public object Remove(string ListId, List<string> ItemIds)
{
//removed
}
}
我的路線被登記在Global.asax如下:
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
我的WebAPI路線定義爲:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
當生成通過@ Url.Action( 「刪除」, 「列表」)的URL,我得到的路徑是 '/列表/刪除'。我預計WebApi路由('/ api/list/remove')被選中,因爲WebApi路由在其他路由之前被註冊。
如何獲得@ Url.Action按預期返回WebApi路由?
你有在同一項目作爲非的WebAPI控制器的WebAPI控制器? – DavidG
是的。命名空間是東西.Controllers.WebAPI和something.Controllers – Jason
你試圖使用'@ Url.RouteUrl'與路由名稱DefaultApi? – py3r3str