朋友们,
我试图在我的应用程序中使用DyGraph.请看下面的代码 –
<head> <Meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9"> <title>crosshairs</title> <script type="text/javascript" src="dygraph-combined.js"></script> <script type="text/javascript" src="data.js"></script> </head>
该代码使用包含data.js文件的函数来获取一些静态数据.
我想要使用控制器方法生成data.js,以便它将使用数据库生成数据.
有人可以帮我解决这个问题.
感谢您分享宝贵的时间.
解决方法
您可以定义控制器操作:
public ActionResult Data() { // ObvIoUsly this will be dynamically generated var data = "alert('Hello World');"; return JavaScript(data); }
接着:
<script type="text/javascript" src="<%= Url.Action("Data","SomeController") %>"></script>
如果您有一些您不想在控制器中生成的复杂脚本,则可以通过定义视图模型来遵循标准MVC模式:
public class Myviewmodel { ... put required properties }
控制器动作将填充此视图模型并将其传递给视图:
public ActionResult Data() { Myviewmodel model = ... Response.ContentType = "application/javascript"; return PartialView(model); }
最后一个视图在这种情况下将是视图模型的javascript表示(〜/ Views / SomeController / Data.ascx):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Myviewmodel>" %> alert(<%= new JavaScriptSerializer().Serialize(Model.Name) %>);