服务路线中的参数

时间:2011-01-25 12:30:05

标签: wcf asp.net-mvc-2 asp.net-mvc-routing webhttpbinding wcf-routing

处理WCF webhttp项目并对路由组合中的参数提出疑问。

我有两项服务 - 项目服务(允许用户添加和查看项目)和一项允许用户查看项目内项目的项目服务。单个项目中可以有多个项目。

我想提供

形式的网址

localhost//projects//addproject

localhost//projects//{projectid}//item//additem

localhost//projects//{projectid}//item//getitem//{itemid}

我有两个服务ItemService和ProjectService。 Itemservice有方法additem和getitem Projectservice的方法是addproject

如何在全球路线中声明这些服务?我试过了

RouteTable.Routes.Add(new ServiceRoute("projects/{projectid}/item", new WebServiceHostFactory(), typeof(ItemService))); 这给了我一个错误

我可以将所有代码添加到ProjectService中,但是为了代码的可维护性,我希望同时拥有ProjectService和ItemService

1 个答案:

答案 0 :(得分:1)

只是一个建议:

  • 您可以创建一个名为的控制器,例如:“ProjectController”。
  • 为其添加方法,即调用您的服务,例如:

    • 一个。 AddProject()
    • 湾AddItem(int projectID)
    • ℃。 GetItem(int projectID,int ItemID)

你几乎可以按照你想要的方式打电话给他们:

本地主机// //项目AddProject

本地主机// //项目的AddItem // {专案编号}

本地主机// //项目的GetItem // {专案编号} // {的itemid}