I'm pretty confused with how to mix razor and js. This is the current function I am stuck with:
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
data.push([ @r.UnixTime * 1000, @r.Value ]);
}
If I could declare c# code with <c#></c#>
and everything else was JS code -- this would be what I am after:
<script type="text/javascript">
var data = [];
<c#>@foreach (var r in Model.rows) {</c#>
data.push([ <c#>@r.UnixTime</c#> * 1000, <c#>@r.Value</c#> ]);
<c#>}</c#>
What is the best method to achieve this?
Never ever mix more languages.
Wrap your Razor code in @{ } when inside JS script and be aware of using just @ Sometimes it doesn't work:
This will produce
in browser =(
you also can simply use
note @:
you can use the
<text>
tag for both cshtml code with javascriptUse
<text>
:Inside a code block (eg,
@foreach
), you need to mark the markup (or, in this case, Javascript) with@:
or the<text>
tag.Inside the markup contexts, you need to surround code with code blocks (
@{ ... }
or@if
, ...)