如何从ASP返回Javascript.. NET 5 MVC 6控制器动作
本文关键字:MVC 控制器 NET ASP 返回 Javascript | 更新日期: 2023-09-27 18:13:17
我需要一个Action返回一个JavaScript片段。
在MVC 5中,我们有:return JavaScript("alert('hello')");
但是在MVC 6中我们没有。
这可以通过返回ContentResult MSDN
实现return Content("<script language='javascript' type='text/javascript'>alert('Hello world!');</script>");
或其他方式将使用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";
}
}
. NET MVC 6不像MVC 5那样支持JavaScriptResult
。这里可以找到一个有趣的讨论(也有一些解决你的问题的方法):https://github.com/aspnet/Mvc/issues/2953
我个人认为向客户端发送JS代码是一件坏事(向客户端发送JS需要的数据,然后在那里执行函数调用),但似乎有一个有效的情况(看看最后的评论)。