如何从ASP.NET 5 MVC 6控制器操作返回Javascript

我需要一个Action返回一个JavaScript片段。

在MVC 5中,我们有:

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

但是在MVC 6中我们没有。

现在有办法做到这一点吗?

这可以通过返回ContentResult MSDN来实现

 return Content(""); 

或其他方式将使用ajax

 return json(new {message="hello"}); $.ajax({ url: URL, type: "POST", success: function(data){alert(data.message)}, }); 

我认为我们可以自己实施JavaScriptResult,因为它不是正式支持的。 这很容易:

 public class JavaScriptResult : ContentResult { public JavaScriptResult(string script) { this.Content = script; this.ContentType = "application/javascript"; } } 

目前ASP.NET MVC 6不支持像MVC 5中的JavaScriptResult 。这里有一个有趣的讨论(这里也有一些解决方案): https : //github.com/aspnet/Mvc/issues/2953

我个人认为将JS代码发送到客户端是一件坏事(向客户端发送JS需要的数据,然后在那里执行函数调用)但似乎有一个有效的情况(查看最后一条评论)。