Pri*_*tal -1 c# asp.net-web-api-routing asp.net-web-api2
我使用了属性路由并将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)
我正在尝试创建具有自己的默认路由的多个控制器.请帮忙.
显示的错误消息通常与路径模板相关联
Route("{Param1}{Param2}/{Param3})
Run Code Online (Sandbox Code Playgroud)
在{Param1}{Param2}上面的例子中,没有任何东西可以分开两个连续的参数.框架将无法使用此类模板来匹配路由,因为无论参数名称如何,它都无法识别要映射到操作的参数.
检查您的路线模板是否存在拼写错误,因为很容易犯这种错误.
}{如果您无法在视线中轻松识别,请尝试在代码中搜索.