Я пытаюсь обновить свойство модели под названием State.TransactionProcessingIds.EventInstanceName из директивы nb-blur, вызывая метод действия контроллера на C#.
На мой взгляд, следующее:
<md-input-container>
<input name = "EventInstanceId" type = "text" ng-blur = "$http.post('/InternalDonations/Test').success(function (data) { State.TransactionProcessingIds.EventInstanceName = data; });">
</md-input-container>
и у меня есть следующий контроллер и метод действия:
public class InternalDonationsController : Controller
{
public string Test()
{
return "test123";
}
}
Событие ngBlur запускается, когда текстовое поле теряет фокус, однако, когда это происходит, я вижу, что State.TransactionProcessingIds.EventInstanceName не обновляется.
Я прикрепил отладчик к SiteCore и поставил точку останова на метод действия и вижу, что он никогда не вызывается.
Для /InternalDonations/Test определен рабочий маршрут.
Как я могу вызвать метод действия из ngBlur?
@NineBerry Там нет запросов на / InternalDonations / Test
Попробуйте вызвать функцию при размытии.
@SudhirOjha, что ты имеешь в виду?





Вместо того, чтобы использовать службу $ http в шаблоне, создайте внутри метод и вызовите службу. Итак, обновите шаблон до
<md-input-container>
<input name = "EventInstanceId" type = "text" ng-blur = "postTestData()">
</md-input-container>
В контроллере добавьте этот метод как:
this.postTestData = function() {
$http.post('/InternalDonations/Test', postData).then(function (data) {
State.TransactionProcessingIds.EventInstanceName = data;
});
}
Убедитесь, что вы вводите $ http в контроллер, а также ваша служба работает, 1-й протестируйте эту службу с помощью метода POST (или GET) в Postman или любом другом клиенте REST.
Куда мне поместить код this.postTestData = function ()? В блоке <script> в файле .cshtml?
@Backwards_Dave внутри контроллера вашего приложения angularjs (код интерфейса)
Что сообщает сетевой монитор вашего браузера? Вы видите там запрос?