我需要一个返回JavaScript片段的Action。
在MVC 5中,我们有:
return JavaScript("alert('hello')");
但是在MVC 6中,我们不再需要这样做。
现在有没有一种方法可以做到这一点?
我需要一个返回JavaScript片段的Action。
在MVC 5中,我们有:
return JavaScript("alert('hello')");
但是在MVC 6中,我们不再需要这样做。
现在有没有一种方法可以做到这一点?
return Content("<script language='javascript' type='text/javascript'>alert('Hello world!');</script>");
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需要的数据,然后在那里执行函数调用),但似乎存在有效的情况(请查看最后一条评论)。