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、期待どおりの結果が得られます。(そしてブレークポイントにヒットしました)

scaffolded upshot スクリプトで何が起こっているのか理解できないようです。

ありがとう

4

1 に答える 1

0

次のコードを試してください。

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

また、firebug/developer console のNetworkタブに移動するか、Fiddler を起動し、コントローラへのリクエストが実際に送信されているかどうかを確認します。送信された場合、問題はコントローラーにあり、おそらくアクションが正しくマッピングされていません。

于 2012-06-04T11:52:06.317 に答える