[英]ASP .NET MVC 3 + Calling an HttpPost Action Method From a Different Controller
[英]How to handle two different HttpPost in one controller
我有一个通用控制器
[HttpPost]
public void Create(T entity)
{
...
}
还有一个从通用控制器继承的额外控制器,并在其中添加了此方法:
[ActionName("AddPrivileges")]
public void AddPrivileges(AddPrivilegeModel model)
{
...
}
我现在的问题是,控制器中有两个HttpPost
请求。 我试图通过路由修复它,但是我认为我做错了什么。
config.Routes.MapHttpRoute(
name: "RoleActionRoute",
routeTemplate: "api/Role2/AddPrivileges"
);
我该怎么办?
您可以像这样提供特殊的映射
config.Routes.MapHttpRoute(
name: "SpecialAction",
routeTemplate: "api/{controller}/AddPrivileges",
defaults: new { action = "AddPrivileges" }
, constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) }
);
config.Routes.MapHttpRoute(
name: "PostAction",
routeTemplate: "api/{controller}",
defaults: new { action = "Create" }
, constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
因此,您的特殊方法AddPrivileges
现在具有特殊映射
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.