簡體   English   中英

在Javascript中使用Razor(非MVC)

[英]Using Razor inside Javascript (not MVC)

我想知道我是否可以在javascript中使用剃須刀!

<html>
    <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">

    // Load the Visualization API and the corechart package.
    google.charts.load('current', {'packages':['corechart']});

    // Set a callback to run when the Google Visualization API is loaded.
    google.charts.setOnLoadCallback(drawChart);

    // Callback that creates and populates a data table,
    // instantiates the pie chart, passes in the data and
    // draws it.
    function drawChart() {

        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);

        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                   'width':400,
                   'height':300};

        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
    </head>

    <body>
        <!--Div that will hold the pie chart-->
        <div id="chart_div"></div>
    </body>
</html>

這只是Google的基本代碼,它將顯示帶有靜態值的餅圖,我想在圖表中的數字上添加一些變量,以便它們可以根據我頁面上的數據進行更改。

data.addRows([
      ['Mushrooms', 3],
      ['Onions', 1],
      ['Olives', 1],
      ['Zucchini', 1],
      ['Pepperoni', 2]
    ]);

基本上,在這種情況下,這是很重要的部分,我想將這段代碼中的數字交換為諸如@number類的剃須刀變量,這可能嗎?

在搜索一些答案時,我發現添加javascript代碼將使其允許剃須刀,但我無法使其工作,當我這樣做時,僅通過添加<text>甚至沒有任何剃須刀代碼都無法顯示圖表。

或者,如果您有使用Google Charts API的經驗,並且知道如何以更好的方式整體上做到這一點!

是的,您可以在<script>標記內使用razor

<script type="text/javascript">
  data.addRows([
    ['@someRazorString', @someRazorNumber]
  ]);
</script>

另外,您可以使用

@{
var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
<text>
    <script type="text/javascript">
        var someJsObjectOrArray = @Html.Raw(JsonConvert.SerializeObject(Model.someDotNetObjectOrArray, jsonSerializerSettings)));
    </script>
</text>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM