【发布时间】:2013-08-20 21:52:58
【问题描述】:
我遇到了这种有趣的情况,我有一个用于 webApi 的 baseController 并已将问题追溯到这个问题。如果我有一个输入参数类型为 Object 的基本控制器,它将以 http 500 Multiple actions where found 结束...
这是在使用 IISExpress 的 vs 2012 的默认空 mvc 4.0 项目中
public class BaseSecureApi : ApiController
{
public string Wtf(object ohMyGodThisIsSilly)
{
return null;
}
}
还有控制器
public class Default1Controller : BaseSecureApi
{
// GET api/default1
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// POST api/default1
[HttpPost]
public string Post([FromBody]string value)
{
return "Postmyvalue:" + value;
}
}
还有一条路线
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
现在为什么路由会变得混乱。 IRL 基类根据谁登录以及结果是否应该加密返回一个 httpResponse。
【问题讨论】:
-
我尝试使用发布的代码进行重现,但我没有得到你得到的结果。如果我将 Wtf 方法重命名为 GetWtf,我会得到相同的结果。
-
您使用的是哪个环境@OlavNybø?刚刚检查了我的测试项目,它崩溃了。
-
我在发帖时得到了和你一样的结果,我一开始只试过get。
标签: c# asp.net-web-api asp.net-web-api-routing