我在ASP.Net MVC的Area中有关于路由API的问题。我为(Admin,Guest,SuperAdmin)添加了许多区域,我想为每个用户添加API,但是我无法访问API。
// added this code in Admin Area
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
// added this code in SuperAdmin Area
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"SuperAdmin_default",
"SuperAdmin/{controller}/{action}/{id}",
);
}
}
但是我想使用代码作为API,所以添加
公共静态类WebApiConfig{公共静态无效寄存器(HttpConfiguration配置){config.MapHttpAttributeRoutes();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
"CustomApi",
"api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute("SuperAdminDefaultApiGet", "Api/superadmin/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
config.Routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
config.Routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
}
}
我在SuperAdmin中添加两个具有相同名称的Controller,>]
[RoutePrefix("api/superAdmin/users")] public class SuperAdminController : ApiController { [Route("getUser")] [AllowAnonymous] public HttpResponseMessage getUser() { // code } } [RoutePrefix("api/admin/users")] public class AdminController : ApiController { [Route("getUser")] [AllowAnonymous] public HttpResponseMessage getUser() { // code } }
[谁能帮我解决路由问题,或提供有关Area MVC中路由API的文章为我提供支持
我在ASP.Net MVC的Area中有关于路由API的问题。我为(Admin,Guest,SuperAdmin)添加了许多区域,我想为每个用户添加API,但是我无法访问API。 //在管理区域中添加了此代码...
在注册任何api路由之前,在顶部的webapi.config中添加此代码