在控制器操作中返回任何类型的结果时调用javascript函数

时间:2011-04-28 09:48:28

标签: javascript asp.net-mvc bpopup

我坚持以下情况:

在我看来,有一个项目列表。根据项目所代表的内容,单击某个项目将转到相应的视图并显示这些结果。现在在视图中显示结果不是问题;这工作正常。但是,某些项目应显示在弹出窗口中而不是视图中。我正在使用部分视图和bPopup以及类似ShowListDialog(数据)的javascript函数来显示对话框并绑定数据。如何在操作中返回任何需要的结果(我怀疑是JavaScriptResult)时调用javascript函数。

我认为我现在的行动应该是:

public ActionResult 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结果的示例,我甚至无法使其工作。如果我这样说:

返回JavaScript(“alert('Hello');”);

然后在IE中它询问我是否要打开javascript文件;在Chrome和Firefox中,它只显示警报('Hello');在页面上。

先谢谢你的帮助:) d

1 个答案:

答案 0 :(得分:0)

在循环浏览项目时,您可以决定弹出哪个项目,哪个不是,然后基于此链接到2个单独的操作?

JavaScriptResult只有在通过ajax调用操作时才有效,这可能就是为什么它不能正常工作(如果你没有)。你可以使用它来告诉它是否是一个ajax请求,然后返回相应的结果。