【发布时间】:2016-06-23 17:45:18
【问题描述】:
如何在 MVC 4 中使用多个 [HttpPost] 操作实现 Web API?
不知何故,它不允许这样做。
以下是我的代码:
public class DataOperationController : ApiController
{
DataOperationManager dalManager = new DataOperationManager();
[HttpPost]
public User AddUser(User user)
{
User newUser = new NBFTestModels.Models.User();
newUser = dalManager.AddUser(user);
return newUser;
}
[HttpPost]
public Device AddDevice(Device device)
{
Device newDevice = new NBFTestModels.Models.Device();
newDevice = dalManager.AddDevice(device);
return newDevice;
}
}
WebAPI 配置:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ControllerAndAction",
routeTemplate: "api/{controller}/{action}"
);
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.EnableSystemDiagnosticsTracing();
}
}
我在 Web API2 中检查了 Route 属性,它解决了这个问题。但根据客户端限制,我们必须使用 mvc4。 MVC 4 不支持路由属性。有什么建议吗?
【问题讨论】:
标签: c# asp.net-mvc-4 asp.net-web-api routes