我有一个webapi控制器违反了默认的webapi约定,以暴露一些不同的“get”方法
[HttpGet]
[WebAPIValidateAntiForgeryTokenAttribute]
public Manufacturer[] GetManufacturers()
{
var profiler = MiniProfiler.Current;
using (profiler.Step("WCF Service Call: GetManufacturers"))
{
return IvService.GetManufacturers();
}
}
[HttpGet]
[WebAPIValidateAntiForgeryTokenAttribute]
public Range[] GetRanges(string manufacturer_code)
{
var profiler = MiniProfiler.Current;
using (profiler.Step("WCF Service Call: GetRanges"))
{
return IvService.GetRanges(manufacturerCode);
}
}
它们是非常简单的方法,从Javascript调用并通过WCF再次调用外部系统,然后返回结果。这已经在dev上工作了一段时间但最近停止了工作 - 从javascript到GetManufacturers和GetRanges的调用现在在GetManufacturers中达到了相同的断点。我检查了小提琴手,它肯定会调用正确的网址。
答案 0 :(得分:3)
已经进行了一些重构以强制执行一些与参数名称相关的编码标准,并且来自javascript的调用已经调整为
VehicleController/GetRanges?manufacturer_code=AB
到
VehicleController/GetRanges?manufacturerCode=AB
不调整相应的webapi方法。起初我曾怀疑这是一些奇怪的路由问题,但事实证明,因为参数名称不再包含它识别的任何东西,它解决了唯一没有需要任何参数的方法,这是有道理但让我抓挠我的一会儿!