ASP.NET MVC Javascript ActionResult

Here's an example I found on a blog post, which actually describes it as an anti-pattern, because the Controller has to have in-depth knowledge of the View in order to function.

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

The only way I have found to return a JavascriptResult and execute it on the client is with JQuery:

<script>
$(document).ready(function () {
    $("button").click(function () {
        $.getScript("/Home/ShowAlert");
    });
});
</script>

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

In the controller:

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

Tags:

Asp.Net Mvc