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
}