【发布时间】:2019-12-20 17:22:21
【问题描述】:
我正在使用 ASP.NET Core 2.2 项目,我需要从控制器返回 JavaScript。但是,我怀疑没有直接的方法,因此,我按照this OS 的回答并更改了我的代码如下:
public IActionResult MyAction()
{
var sb = new StringBuilder();
sb.Append("$(document).ready(function(){");
sb.Append("alert('hi')");
sb.Append("});");
return new JavaScriptResult(sb.ToString());
}
public class JavaScriptResult : ContentResult
{
public JavaScriptResult(string script)
{
this.Content = script;
this.ContentType = "application/javascript";
}
}
虽然它只是写纯文本。有办法吗?
【问题讨论】:
-
当你说它是“只是写纯文本而不是”,是否可以理解为
Content-Type作为text/plain发送? -
是的,没错! @约翰
-
根据您的实现,我可以假设您希望在调用控制器方法时执行脚本。如果我是对的,那么如果您通过 ViewData 对象传递脚本并从您的视图页面引用,例如:Controller:
ViewData["sayhello"] = "alert('hello');"然后从 View: 头部标签<script>@Html.Raw(ViewData["sayhello"].ToString())</script> -
是的,这是一种替代方式,目前实现相同。但是,我们将不再有查看页面
标签: javascript c# asp.net-core asp.net-core-2.2