最近,我将我的Azure后端项目从App 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(工作正常)?
答案 0 :(得分:0)
我解决了这个问题:
config.Routes.MapHttpRoute("ActionApi", "api/{controller}");