14

友達、

アプリケーションで 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 を生成したいと考えています。

誰でもこの問題を解決するのを手伝ってくれますか?

貴重な時間を共有していただきありがとうございます。

4

2 に答える 2

34

コントローラー アクションを定義できます。

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) %>);
于 2011-11-15T08:45:26.693 に答える