Поведение setInterval
по умолчанию - это привязка к глобальному контексту. Вы можете вызвать функцию-член, сохранив копию текущего контекста. Внутри retrieve_rate переменная this
будет правильно привязана к исходному контексту. Вот как выглядит ваш код:
var self = this;
this.intervalID = setInterval(
function() { self.retrieve_rate(); },
this.INTERVAL);
Бонусный совет: для простой ссылки на функцию (в отличие от ссылки на объект, которая имеет функцию-член) вы можете изменить контекст с помощью JavaScript call
или apply
.
Ответ Курта должен быть правильным, исходя из моих исследований, но когда я попробовал, мне пришлось сделать это, чтобы заставить его работать на меня:
return RedirectToAction( "Main", new RouteValueDictionary(
new { controller = controllerName, action = "Main", Id = Id } ) );
Если бы я не указать контроллер и действие в RouteValueDictionary
, это не сработало.
Также при такой кодировке первый параметр (Action), кажется, игнорируется. Поэтому, если вы просто укажете контроллер в Dict и ожидаете, что первый параметр укажет действие, он тоже не сработает.
Если вы придете позже, попробуйте сначала ответ Курта, а если у вас все еще есть проблемы, попробуйте это один.
Вы можете передать идентификатор как часть параметра routeValues метода RedirectToAction ().
return RedirectToAction("Action", new { id = 99 });
Это вызовет перенаправление на Site / Controller / Action / 99. Нет необходимости во временных данных или каких-либо данных просмотра.