Irf*_*aza 14 javascript asp.net-mvc-2 dygraphs
朋友们,
我想在我的应用程序中使用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>
Run Code Online (Sandbox Code Playgroud)
该代码使用包含函数的data.js文件来获取一些静态数据.我希望使用控制器方法生成data.js,以便它使用数据库生成数据.
任何人都可以帮我解决这个问题.
感谢您分享宝贵的时间.
Dar*_*rov 34
您可以定义控制器操作:
public ActionResult Data()
{
// Obviously this will be dynamically generated
var data = "alert('Hello World');";
return JavaScript(data);
}
Run Code Online (Sandbox Code Playgroud)
然后:
<script type="text/javascript" src="<%= Url.Action("Data", "SomeController") %>"></script>
Run Code Online (Sandbox Code Playgroud)
如果您有一些不希望在控制器中生成的复杂脚本,则可以通过定义视图模型来遵循标准MVC模式:
public class MyViewModel
{
... put required properties
}
Run Code Online (Sandbox Code Playgroud)
一个控制器动作,它将填充此视图模型并将其传递给视图:
public ActionResult Data()
{
MyViewModel model = ...
Response.ContentType = "application/javascript";
return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)
最后是一个视图,在这种情况下将是视图模型(~/Views/SomeController/Data.ascx
)的javascript表示:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<MyViewModel>" %>
alert(<%= new JavaScriptSerializer().Serialize(Model.Name) %>);
Run Code Online (Sandbox Code Playgroud)