Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 ASP.NET MVC 4属性在同一控制器中执行多个POST操作_C# 4.0_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

C# 4.0 ASP.NET MVC 4属性在同一控制器中执行多个POST操作

C# 4.0 ASP.NET MVC 4属性在同一控制器中执行多个POST操作,c#-4.0,asp.net-mvc-4,asp.net-web-api,C# 4.0,Asp.net Mvc 4,Asp.net Web Api,我不确定我在这里做错了什么。每当我向我的控制器发送请求时,更新操作总是被调用。我打电话: http://localhost/members/login/ 然而,Update不断收到请求。我甚至尝试在控制器中切换操作顺序,但都没有效果 [RoutePrefix("Members")] public class MembersController : ApiController { [POST("{member}")] public void Update(Member membe

我不确定我在这里做错了什么。每当我向我的控制器发送请求时,更新操作总是被调用。我打电话:

http://localhost/members/login/
然而,Update不断收到请求。我甚至尝试在控制器中切换操作顺序,但都没有效果

[RoutePrefix("Members")]
public class MembersController : ApiController
{
    [POST("{member}")]
    public void Update(Member member)
    {
        //Do Some Stuff
    }

    [POST("Login/{member}")]
    public HttpResponseMessage MemberLogin(Member member)
    {
       //Do Some Stuff
    }
}

非常感谢您的帮助。谢谢

这是因为对于Api路由,它们是相同的。详细解释如何在Web API中执行路由和操作选择。如果不想将它们拆分为两个控制器,则将
更新
作为
放置
请求。这应该告诉路由引擎它们是两个不同的操作。

我通过反复试验(很多小时:/)找到了答案


我不知道为什么会这样,但我相信最终我会明白的。

当我打印路由表时,我看到这样一个:POST members/update/{member}controller:members action:update POST members/login/{member}controller:members action:login,所以我认为它们看起来不是同一回事。它们有不同的动作名称。我在控制器中有另一个PUT动作;我的“添加”操作。因此,该方法和操作的结果也是一样的。我可以让它工作,如果我注册我的路线个别,但我喜欢使用属性计算。你用什么路由引擎?
[RoutePrefix("Members")]
public class MembersController : ApiController
{
    [POST("Update")]
    public void Update(Member member)
    {
        //Do Some Stuff
    }

    [POST("Login")]
    public HttpResponseMessage MemberLogin(Member member)
    {
       //Do Some Stuff
    }
}