0

我正在关注史蒂夫·桑德森(Steve Sanderson)的一个非常简单的教程,看起来脚手架的脚本没有调用我的 webapi:

cshtml代码:

@(Html.UpshotContext().DataSource<Yoga.Controllers.YogaController>(x => x.GetAllBugs()))

生成的脚本:

upshot.dataSources = upshot.dataSources || {};
upshot.metadata({...});

upshot.dataSources.AllBugs = upshot.RemoteDataSource({ 
    providerParameters: { url: "/api/Yoga/", operationName: "GetAllBugs" },
    entityType: "BugView:#Yoga.Models",
    bufferChanges: false,
    dataContext: undefined,
    mapping: {}
});

并在页面加载后调用:

        $(function() {
        var dataSource = upshot.dataSources.AllBugs;
        dataSource.refresh(function(results)){
        //error here, `result` is an null object
            alert(results);
        });
    });

我在控制器中的 GetAllBugs() 成员处放置了一个断点,但它从未被击中。

但是,当我直接访问 uri 时,http://localhost/api/yoga/getallbugs我得到了预期的结果。(并且断点被击中)

我似乎无法弄清楚脚手架的结果脚本发生了什么。

谢谢

4

1 回答 1

0

试试下面的代码:

dataSource.refresh(function (entities, total){
   alert(entities);
});

另外,进入firebug/开发者控制台的网络选项卡,或者启动Fiddler,检查对控制器的请求是否真的被发送。如果已发送,则您的问题出在控制器上,可能未正确映射操作。

于 2012-06-04T11:52:06.317 回答