将upshot绑定到不同项目中的Web API

Szi*_*zsi 4 singlepage asp.net-mvc-4 asp.net-web-api upshot

我正在尝试创建一个SPA应用程序,以利用结果及其功能.但是,公开数据的服务(即Web API)位于一个完全独立的项目中,已经托管在IIS上.我想将upshot绑定到现有的API,但是从我在upshot的HTML帮助器(v1.0.0.1)中可以看到,你需要传入暴露数据的控制器的类型,如下所示:

Html.UpshotContext.DataSource(Of ToDoController)(Function(x) x.GetTodoItems())

其中ToDoController是公开在同一项目中定义的数据的ApiController.

我的问题是,如何将upshot绑定到不在同一项目中的Web API?有什么方法可以使用帮助器,还是我必须手动完成所有操作?

我可以访问Model类(即TodoItem),因为它们位于一个单独的程序集中,可以从两个项目(SPA和Web API)中引用,但我无法访问Web API项目中定义的控制器.

Tal*_*ris 5

您可以使用以下内容:

upshot.dataSources = upshot.dataSources || {};

upshot.metadata({"ModelType:#Namespace":
    {
     "key":["Id"],
     "fields":    
        {"Id":{"type":"Int32:#System"},
         "IpAddress":{"type":"String:#System"},
         "Name":{"type":"String:#System"}
        }
    } (and so on, just map everything)
});

var dataSource = new upshot.RemoteDataSource({
    providerParameters: 
        { url: "Your URL", 
          operationName: "Method Name, example: GetCustomers" },
    entityType: "ModelType:#Namespace",
    bufferChanges: true (or false, whatever you like),
    dataContext: undefined,
    mapping: {}
});
Run Code Online (Sandbox Code Playgroud)

如果我是你,如果我可以暂时创建一个包含Controller项目的解决方案,那么我会检查UpshotContext帮助器生成的JS 并将其复制到您的页面中(无论如何,这是我做的结果) ).