У меня проблема. В моей компании мне нужно попробовать, как Angular.js работает вместе с ASP.NET MVC. Теперь я хочу создать простое небольшое приложение. На первой странице есть вид с сеткой пользовательского интерфейса Kendo. Внутри моего файла App.js
я читал данные с моего контроллера Data
. Действие Controller Action вызывается, но как только код будет выполнен, я получаю следующую ошибку:
Вот остальная часть моего кода:
контроллер:
[HttpGet]
public JsonResult GetEmergencyRegions([DataSourceRequest]DataSourceRequest request, string searchterm)
{
var emergencyRegions = _repository.GetEmergencyRegionBySearchTerm(searchterm);
return Json(emergencyRegions.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
App.js
$scope.gridOptions = {
columns: [{
field: "Description",
title: "Beschreibung"
}, {
field: "Region",
title: "Region"
}, {
field: "Phone",
title: "Telefon"
}, {
field: "HasPointOfSale",
title: "PoS"
}],
pageable: true,
dataSource: {
pageSize: 5,
transport: {
read: function (e) {
$http.jsonp('/Data/GetEmergencyRegions')
.then(function success(response) {
e.success(response.data);
}, function error(response) {
alert('something went wrong')
console.log(response);
})
}
}
}
};
Просмотр с помощью сетки
<kendo-grid options="gridOptions">
</kendo-grid>
В Stackoverflow я уже нашел что-то с добавлением ?callback=JSON_CALLBACK
к jsonp URL
но это не помогло.
уведомление
Когда я JsonRequestBehavior.AllowGet
внутри моего контроллера, я не получаю ошибку, но затем получаю status Code 404
.
Нашел решение. Было несколько изменений:
Удалите DataSourceRequest
в контроллере. С этим изменением исчезает критическая ошибка JavaScript.
public JsonResult GetEmergencyRegions(string searchterm)
{
var emergencyRegions = _repository.GetEmergencyRegionBySearchTerm(searchterm);
return Json(emergencyRegions, JsonRequestBehavior.AllowGet);
}
У меня теперь была ошибка 404 в моем App.js. Решение для этого меняется jsonp
, чтобы get
. Я нашел это решение в следующей ссылке: AngularJS: как сделать запрос jsonp
read: function (e) {
$http.get('/Data/GetEmergencyRegions?callback=JSON_CALLBACK')
.then(function success(response) {
e.success(response.data);
}, function error(response) {
alert('something went wrong')
console.log(response);
})
}
Запустите решение и будьте счастливы :-)
Кажется, вы избыточны "," в App.js
+ Изменить
columns: [{
field: "Description",
title: "Beschreibung",
},
в
columns: [{
field: "Description",
title: "Beschreibung"
},
Надеюсь, это поможет.