ASP.NET MVC Javascript ActionResult

15

有人有JavaScript ActionResults的示例吗?我在获得返回后执行脚本方面遇到了困难。谢谢。

注:此处的ActionResults是指ASP.NET MVC中的ActionResult对象。

你能详细解释一下吗? - Jimmeh
当我从一个操作中返回以下内容时,确保我得到的是警告对话框:Javascript("alert('Hello World');");但是,我得到的是一个页面,其中显示了“alert('Hello World')”。 - Chris
3个回答

16

我在一篇博客文章中找到了一个例子,该例子被称为反模式,因为控制器必须具有深入了解视图的知识才能正常运作。

public ActionResult DoSomething() {   
    string s = "$('#some-div').html('Updated!');";   
    return JavaScript(s);   
}  

10
仅供未来查看的人参考,我想补充一点。在我的看法中,JavaScript 的结果仅会在通过 ajax 调用该操作时执行。如果通过 Html.Actionlink 调用此操作,将返回脚本文本但不执行。 - Chris
JavaScript的ActionResults是处理JsonP结果的方式吗?还是它们以其他方式处理JsonP? - Zachary Scott
@Dr.Zim 我认为您会想要使用 Json(...) 方法来实现。 - Joseph

2
我发现将JavascriptResult返回并在客户端执行的唯一方法是使用JQuery:
<script>
$(document).ready(function () {
    $("button").click(function () {
        $.getScript("/Home/ShowAlert");
    });
});
</script>

<button>Use Ajax to get and then run a JavaScript</button>

在控制器中:

public JavaScriptResult ShowAlert() {
        var script = "alert('Hello');";
        return new JavaScriptResult() { Script = script };
}

0

这可能会起作用...

 public ActionResult Search(string name)
    {
        // var someScript = Server.HtmlEncode("<script>alert('Hello')</script>");

        return  Content("<script>alert('Hello')</script>" );
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接