면도기와 js를 혼합하는 방법과 혼동됩니다. 이것은 내가 붙어있는 현재 기능입니다.
<script type="text/javascript">
var data = [];
@foreach (var r in Model.rows)
{
data.push([ @r.UnixTime * 1000, @r.Value ]);
}
c # 코드를 선언 할 수 <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>
참고 @ :
답변
더 많은 언어를 혼합하지 마십시오.
<script type="text/javascript">
var data = @Json.Encode(Model); // !!!! export data !!!!
for(var prop in data){
console.log( prop + " "+ data[prop]);
}
문제가 발생하면 시도해 볼 수도 있습니다
@Html.Raw(Json.Encode(Model));
답변
자바 스크립트를보기와 분리하지만 면도기를 사용하는 기존의 비 방법은 Scripts.cshtml
파일 을 만들고 혼합 된 자바 스크립트 / 면도기를 배치하는 것입니다.
Index.cshtml
<div id="Result">
</div>
<button id="btnLoad">Click me</button>
@section scripts
{
@Html.Partial("Scripts")
}
Scripts.cshtml
<script type="text/javascript">
var url = "@Url.Action("Index", "Home")";
$(document).ready(function() {
$("#btnLoad").click(function() {
$.ajax({
type: "POST",
url: url ,
data: {someParameter: "some value"},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Result").text(msg.d);
}
});
});
});
</script>
답변
<text>
자바 스크립트로 cshtml 코드 모두에 태그를 사용할 수 있습니다.
답변
JS 스크립트 내부에서 Razor 코드를 @ {}로 감싸고 @ 만 사용하는 것을 알고 있어야합니다. 때로는 작동하지 않습니다.
function hideSurveyReminder() {
@Session["_isSurveyPassed"] = true;
}
이것은 생산할 것이다
function hideSurveyReminder() {
False = true;
}
브라우저에서 = (