【问题标题】:Binding upshot to a Web API in a different project将结果绑定到不同项目中的 Web API
【发布时间】:2012-03-13 01:55:04
【问题描述】:

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

Html.UpshotContext.DataSource(Of <strong>ToDoController</strong>)(Function(x) x.GetTodoItems())

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

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

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

【问题讨论】:

    标签: asp.net-mvc-4 asp.net-web-api singlepage upshot


    【解决方案1】:

    您可以使用以下内容:

    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 并将其复制到你的页面中(这就是我所做的无论如何都有上面的结果)。

    【讨论】:

    • 我真的希望有一个更好的解决方案:(无法访问)真的很有用。
    • 我敢打赌,他们会让“Web API”像经典 Web 服务(发布 wsdl 文件)一样可被发现。但同样,如果 wsdl 未发布或无法访问,您最终将编写自己的接线代码。如果你想知道它在后台如何工作是一件好事;)
    • 我同意知道幕后发生的事情很好,但是当服务器端发生变化时,以一致的方式维护和更新所有内容也是一种痛苦。毕竟,UpshotContext 助手试图提供这些,它只需要更多的改进 imho :)
    • 我在网上看到的一个例子(抱歉不记得链接)在没有元数据信息的情况下工作正常。这可以潜在地避免维护开销......我会试一试,让你知道。
    • 关于在没有元数据的情况下运行它的任何消息?似乎这很容易,更不用说遵循更多的 KnockOut Mapping 风格的钩子了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2020-01-13
    相关资源
    最近更新 更多