Вызов функции javascript при возврате любого результата в действие контроллера - PullRequest
0 голосов
/ 28 апреля 2011

Я застрял в следующем сценарии:

На мой взгляд, есть список предметов.В зависимости от того, что представляет элемент, нажатие на элемент приведет вас к соответствующему виду и отобразит эти результаты.Теперь отображение результатов в представлении не является проблемой;это работает нормально.Однако некоторые элементы должны отображаться во всплывающем окне, а не в виде.Я использую частичное представление вместе с bPopup и функцией javascript, такой как ShowListDialog (data), чтобы показать диалог и связать данные.Как мне вызвать функцию javascript при возврате любого результата, который должен быть (я подозреваю JavaScriptResult) в действии.

Я думаю, что мое действие должно выглядеть на данный момент так:

publicActionResult ResponseItem (int reference) {ResponseBase response = repository.RetrieveResponse (reference);

if (response.ShouldShowInView)
{
    return View(response.RedirectUrl, response.Data);
}
else
{
    return JavaScript("ShowListDialog(" + response.Data.JsonString + ");");
}

}

Я смотрел примеры возврата результата JavaScript и не могу дажезаставить это работать.Если я скажу что-то вроде:

return JavaScript ("alert ('Hello');");

, то в IE он спросит меня, хочу ли я открыть файл javascript;а в Chrome и Firefox он просто отображает предупреждение («Привет»);на странице.

Заранее спасибо за помощь :) D

1 Ответ

0 голосов
/ 28 апреля 2011

при циклическом просмотре элементов вы можете решить, какая из них всплывающая, а какая не связана с двумя отдельными действиями, основанными на этом?

JavaScriptResult работает только в том случае, если вы вызываете действие через ajax, поэтому может быть, поэтому оно не работает (если это не так).Вы можете использовать это, чтобы сообщить в действии, что это ajax-запрос, а затем вернуть соответствующий результат.

...