我有 2 个 Controller ,其中 1 个是 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("Remove", "List")生成url时,得到的路径是'/list/remove'。我希望选择 WebApi 路由('/api/list/remove'),因为 WebApi 路由是在其他路由之前注册的。
如何让@Url.Action 按预期返回 WebApi 路由?
最佳答案
@Url.Action("Remove", "List", new { httproute = "DefaultApi" })
关于asp.net-mvc - 带有 Web Api 和 Controller 路由的 Url.Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24868881/