Ответ 1
Используйте <text>
:
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
<text>
data.push([ @r.UnixTime * 1000, @r.Value ]);
</text>
}
</script>
Я довольно смущен тем, как смешивать бритву и js. Это текущая функция, за которой я застрял:
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
data.push([ @r.UnixTime * 1000, @r.Value ]);
}
Если бы я мог объявить код С# с <c#></c#>
, и все остальное было JS-кодом - это было бы то, что я хочу:
<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#>
Каков наилучший способ достижения этого?
Используйте <text>
:
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
<text>
data.push([ @r.UnixTime * 1000, @r.Value ]);
</text>
}
</script>
Внутри кодового блока (например, @foreach
) вам нужно пометить разметку (или, в данном случае, Javascript) с помощью @:
или тег <text>
.
Внутри контекстов разметки вам необходимо окружить код блоками кода (@{ ... }
или @if
,...)
вы также можете просто использовать
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
@:data.push([ @r.UnixTime * 1000, @r.Value ]);
}
</script>
note @:
Никогда не смешивайте больше языков.
<script type="text/javascript">
var data = @Json.Encode(Model); // !!!! export data !!!!
for(var prop in data){
console.log( prop + " "+ data[prop]);
}
Оберните свой код Razor в @{}, когда внутри JS script, и имейте в виду использование только @ Иногда это не работает:
function hideSurveyReminder() {
@Session["_isSurveyPassed"] = true;
}
Это приведет к созданию
function hideSurveyReminder() {
False = true;
}
в браузере = (