Asp.net mvc 如何在具有不同参数的同一控制器中进行少量PUT操作
我有下一个代码:Asp.net mvc 如何在具有不同参数的同一控制器中进行少量PUT操作,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,我有下一个代码: public class TodoController : ApiController { //... public void Put([FromBody] Todo todo) { //Some update operation for singe todo } public void Put([FromBody] IEnumerable<Todo> todo) { //Some
public class TodoController : ApiController
{
//...
public void Put([FromBody] Todo todo)
{
//Some update operation for singe todo
}
public void Put([FromBody] IEnumerable<Todo> todo)
{
//Some update operation for few todo
}
}
public class Todo
{
public Int32 Id { get; set; }
public String Title { get; set; }
public Boolean Completed { get; set; }
}
有没有办法解决这个问题?任何进步都需要付出很多。为了做到这一点,您必须为每种方法定义单独的路线。管理这一点的一个好方法是为此使用nuget包。它使设置路由变得更加容易,甚至成为WebApi 2的一部分。可以找到它的文档 下面是一个例子:
//define first route
[PUT("PutMethod1")]
public void Put([FromBody] Todo todo)
{
//Some update operation for singe todo
}
//define second route
[PUT("PutMethod2")]
public void Put([FromBody] IEnumerable<Todo> todo)
{
//Some update operation for few todo
}
//定义第一条路由
[投入(“投入方法1”)]
公开作废认沽权([FromBody]Todo Todo)
{
//单todo的某些更新操作
}
//定义第二条路线
[投入(“投入方法2”)]
公共作废出售([FromBody]IEnumerable todo)
{
//一些更新操作只需很少的时间即可完成
}
Rest不支持重载,只实现一个JObject并检测即将发生的事情尝试使用自定义名称作为metods,并在WebApiConfig
Eric Herlitz
中定义其参数。您能提供一些您想法的示例吗?创建两个控制器。单个todo和一组todo是完全不同的资源。无论如何,您的控制器都应该非常轻量级。创建两个不应该如此痛苦。@EricHerlitz REST是一种体系结构风格,对实现机制没有任何限制。您的语句REST不支持重载
没有任何意义。
//define first route
[PUT("PutMethod1")]
public void Put([FromBody] Todo todo)
{
//Some update operation for singe todo
}
//define second route
[PUT("PutMethod2")]
public void Put([FromBody] IEnumerable<Todo> todo)
{
//Some update operation for few todo
}