我有一个名称为 admin 的区域,我在此区域中有一个名为 ProductPicture 的$("div").eq($("div").length-1)
,在此控制器中我有行动名称 AddProductPicture ,我想从视图(位于同一区域)调用此操作,
所以我写了
ApiController
用于访问它,但它不起作用,并且控制台给我错误404,有什么问题?
编辑:我已将此代码添加到 $upload.upload({
url:'/Admin/api/ProductPicture/AddProductPicture',
fields:$routeParams.ProductId,
file: file
})
中的WebApiConfig
:
App_Start
以及网络标签中的网址: public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "API Area",
routeTemplate: "Admin/api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
)
}
但它不起作用!!
答案 0 :(得分:0)
您需要为管理区域注册路线。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
...
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// ***** This is what you need *****
config.Routes.MapHttpRoute(
name: "AdminDefaultApi",
routeTemplate: "Admin/api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
答案 1 :(得分:0)
您可以发送ApiController和路由配置的代码吗?您还可以在浏览器中打开开发人员工具,查看“网络”选项卡,查看实际调用的路径。