我有一个路由问题,我不知道如何解决它。
有一个名为“UsersController”的控制器,它包含 2 个 Post 操作函数:
public int PostFBLogin(User userObject){}
public void PostUpdateImgUrl(User userObject){}
当我发出 POST 请求时,我在请求正文中传递了“用户”的 JSON 表示。如果我注释掉这些功能之一,那么它工作正常。但是当这两个函数都存在时,每当我尝试向它们中的每一个发出请求时,都会出现以下错误:
"Multiple actions were found that match the request:
Int32 PostFBLogin(MestoryServer.Models.User) on type MestoryServer.Controllers.UsersController
Void PostUpdateImgUrl(MestoryServer.Models.User) on type MestoryServer.Controllers.UsersController"
我试图通过将以下路由放入路由表中来解决它:
RouteTable.Routes.MapHttpRoute(
name: "UserPostUpdateImgUrlAction",
routeTemplate: "api/users/PostUpdateImgUrl/",
defaults: new
{
controller = "users",
action = "PostUpdateImgUrl"
}
);
RouteTable.Routes.MapHttpRoute(
name: "UserPostFBLoginAction",
routeTemplate: "api/users/PostFBLogin/",
defaults: new
{
controller = "users",
action = "PostFBLogin"
}
);
但这没有帮助。
在网上看了很多关于路由表的帖子后,我不确定是否有可能有两个具有相同签名但名称不同的操作。
任何人都可以帮忙吗?
谢谢,艾迪。