0

我有一个 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 中达到相同的断点。我检查了提琴手,它肯定调用了正确的网址。

4

1 回答 1

3

已经进行了一些重构以强制执行一些与参数名称有关的编码标准,并且来自 javascript 的调用已调整为 from

VehicleController/GetRanges?manufacturer_code=AB

VehicleController/GetRanges?manufacturerCode=AB

无需调整相应的webapi方法。起初我怀疑这是一些奇怪的路由问题,但事实证明,因为参数名称不再包含它识别的任何内容,它解析为唯一不需要任何参数的方法,这是有道理的,但让我摸不着头脑一小会儿!

于 2013-04-16T10:50:20.203 回答