Xamarin。将Azure移动服务升级到App Service - TableController

时间:2017-05-16 06:43:57

标签: .net azure xamarin

最近,我将我的Azure后端项目从App Services升级到移动服务。

https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-net-upgrading-from-mobile-services

在我的项目中,我使用表格控制器

[MobileAppController]
public class ChildController : TableController<Child>
{
    public Child GetChildByEmail(string email)
    {
        return _context.Children.SingleOrDefault(ch => ch.Email == email);
    }
}

现在,在升级之前,GetChildByEmail方法的URL是:

/api/child/email

所以,我在调用方法如下:

Child result = await _service.MobileServiceClient.InvokeApiAsync<Child>
("child", HttpMethod.Get, new Dictionary<string, string>() { { "email", 
email } });

工作得很好。但升级后,方法的URL是

/tables/child/email

因此InvokeApiAsync无效,因为它正在调用

/api/child/email

我尝试使用“Route”属性

修饰方法
Route["api/child"]

但它不起作用。有没有办法在TableController中保留该方法并强制InvokeApiAsync调用/ tables / child / email而不是/ api / child / email?或者解决该问题的唯一方法是将方法移动到ApiContoller(工作正常)?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

config.Routes.MapHttpRoute("ActionApi", "api/{controller}");