Контекст Upshot, не поддерживающий леса, не вызывает webapi?
Я следую очень простому руководству Стива Сандерсона, и кажется, что скрипт scaffolded не вызывает мой 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() в контроллере, и он никогда не был достигнут.
Тем не менее, когда я посещаю Ури напрямую, http://localhost/api/yoga/getallbugs
я получаю ожидаемый результат. (и точка останова была достигнута)
Кажется, я не могу понять, что происходит со сценарием scaffolded upshot.
Спасибо
1 ответ
Попробуйте следующий код:
dataSource.refresh(function (entities, total){
alert(entities);
});
Кроме того, перейдите на вкладку "Сеть" консоли Firebug / Developer или запустите Fiddler и проверьте, действительно ли отправлен запрос контроллеру или нет. Если оно отправлено, значит, ваша проблема связана с контроллером, возможно, неправильно отображает действие.