mam 2 kontrolerów, z których 1 jest WebAPI:Url.Action z WebAPI i kontrolera tras
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
}
}
Moje trasy są zarejestrowane w Global.asax następująco:
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
My trasa WebAPI jest zdefiniowany jako:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Podczas generowania URL poprzez @ Url.Action ("Usuń", "list"), ścieżka mogę to '/ lista/usuń'. Spodziewałem się wyboru trasy WebApi ("/ api/list/remove"), ponieważ trasy WebApi zostały zarejestrowane przed innymi trasami.
Jak mogę uzyskać @ Url.Action, aby zwrócić trasę WebApi zgodnie z oczekiwaniami?
masz kontroler WebAPI w tym samym projekcie jako regulatora zakaz WebAPI? – DavidG
Tak. Przestrzenie nazw są czymś.Controllers.WebAPI i coś.Controllers – Jason
Czy próbowałeś użyć '@ Url.RouteUrl' z nazwą trasy DefaultApi? – py3r3str