小编Pri*_*tal的帖子

属性路由不适用于两个或多个控制器

我使用了属性路由并将RoutePrefix()设置为FirstController的默认路由.然后我创建了一个新的控制器并给出了它的默认路由.

运行时System.ArgumentException正在"GlobalConfiguration.Configure(WebApiConfig.Register);"上生成.在Global.asax中显示消息:

"路径段不能包含两个连续的参数.它们必须用'/'或文字字符串分隔."

这是FirstController.cs

     [System.Web.Http.RoutePrefix("api/First")]
 public class FirstController : ApiController
 {
     [System.Web.Http.HttpGet]
     [System.Web.Http.Route("Method1/{Param1}/{Param2}")]
     public int Method1(string Param1, string Param2)
     {
       //
     }
     [System.Web.Http.HttpGet]
     [System.Web.Http.Route("Method2/{Param1}/{Param2}")]
     public int Method2(string Param1, string Param2)
     {
       //
     }
 }
Run Code Online (Sandbox Code Playgroud)

这是SecondController.cs

[System.Web.Http.RoutePrefix("api/Second")]
 public class SecondController : ApiController
 {
     [System.Web.Http.HttpGet]
     [System.Web.Http.Route("Method3/{Param1}/{Param2}")]
     public int Method3(string Param1, string Param2)
     {
       //
     }
     [System.Web.Http.HttpGet]
     [System.Web.Http.Route("Method4/{Param1}/{Param2}")]
     public int Method4(string Param1, string Param2)
     {
       //
     }
 }
Run Code Online (Sandbox Code Playgroud)

这是我的Global.asax(以JSON格式返回数据)

protected void Application_Start()
    {
        GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
        GlobalConfiguration.Configure(WebApiConfig.Register);
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建具有自己的默认路由的多个控制器.请帮忙.

c# asp.net-web-api-routing asp.net-web-api2

-1
推荐指数
1
解决办法
2177
查看次数