3

以下路线在我的 WebApiConfig.cs 中:

// routing for /profile/
config.Routes.MapHttpRoute(
    name: "profile",
    routeTemplate: "users/{userid}/profil",
    defaults: new { controller = "User", userid = RouteParameter.Optional }
);

// routing for /messages/
config.Routes.MapHttpRoute(
    name: "messages",
    routeTemplate: "users/{userid}/messages",
    defaults: new { controller = "User", userid = RouteParameter.Optional }
);

这是控制器中的相应代码:

public class UserController {

    [HttpGet]
    [ActionName("profile")]
    public HttpResponseMessage GetProfile(int userid) {}


    [HttpGet]
    [ActionName("messages")]
    public HttpResponseMessage GetMessages(int userid) {}

}

所以基本上我想在同一个控制器中有两个方法,它们都采用相同的参数,但映射到不同的 URL。现在我不断收到关于找到多个操作的错误 - 即使我有 ActionName 属性的区别。

我究竟做错了什么?我可以在同一个控制器中有两个 GET 方法,采用相同的输入但在不同的 URL 上调用吗?

谢谢!

4

1 回答 1

1

您是否尝试在路由定义上专门添加操作名称?

IE

 config.Routes.MapHttpRoute(
name: "profile",
routeTemplate: "users/{userid}/profil",
defaults: new { controller = "User", action="profil", userid = RouteParameter.Optional }

);

于 2012-10-01T10:32:54.850 回答