4

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

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

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

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

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

4

1 回答 1

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: {}
});

如果我是你,如果可以的话,我会临时创建一个包含 Controller 项目的解决方案,然后我会检查UpshotContext助手生成的 JS 并将其复制到你的页面中(无论如何,这就是我为得到上述结果所做的事情)。

于 2012-03-12T17:55:04.973 回答