如何从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需要的数据,然后在那里执行函数调用)但似乎有一个有效的情况(查看最后一条评论)。