Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 从一个控制器调用另一个控制器上的TableController.Lookup()失败_Asp.net Web Api_Azure Mobile Services - Fatal编程技术网

Asp.net web api 从一个控制器调用另一个控制器上的TableController.Lookup()失败

Asp.net web api 从一个控制器调用另一个控制器上的TableController.Lookup()失败,asp.net-web-api,azure-mobile-services,Asp.net Web Api,Azure Mobile Services,在使用.NET后端的Azure移动应用程序中,我需要一个控制器来查找由另一个控制器处理的实体。例如,在Azure团队的Todo快速启动项目中,想象一下添加一个处理用户管理的UserController。在TodoItemController中,我需要调用UserController.GetUser(id)检查用户是否有权发布新的TodoItem 在TodoItemController.cs中: var userController = new UserController(); var user

在使用.NET后端的Azure移动应用程序中,我需要一个控制器来查找由另一个控制器处理的实体。例如,在Azure团队的Todo快速启动项目中,想象一下添加一个处理用户管理的
UserController
。在
TodoItemController
中,我需要调用
UserController.GetUser(id)
检查用户是否有权发布新的TodoItem

在TodoItemController.cs中:

var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized) 
{
  // Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
  // Insert item
}
UserController.GetUser()
中调用时,上述代码引发异常。异常表示请求参数不能为null。我的猜测是缺少了一些东西,因为我自己创建了
UserController
,而不是由框架创建的


如何使其工作?

这似乎在
TodoItemController.cs中工作:

var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized) 
{
  // Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
  // Insert item
}
var context=newtodoprojectcontext();
var userDomainManager=newentitydomainmanager(上下文,请求);
var user=userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if(user.isAuthorized)
{
//插入项目
}

但不确定这是否是最佳解决方案。

这似乎在
TodoItemController.cs中起作用:

var userController = new UserController();
var user = userController.GetUser("12345");
if (user.IsAuthorized) 
{
  // Insert TodoItem
}
var context = new todoProjectContext();
var userDomainManager = new EntityDomainManager<User>(context, Request);
var user = userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if (user.isAuthorized)
{
  // Insert item
}
var context=newtodoprojectcontext();
var userDomainManager=newentitydomainmanager(上下文,请求);
var user=userDomainManager.Lookup(id).Queryable.FirstOrDefault();
if(user.isAuthorized)
{
//插入项目
}
但我不确定这是最好的解决方案