Programing

혼합 면도기와 자바 스크립트 코드

crosscheck 2020. 5. 31. 10:05
반응형

혼합 면도기와 자바 스크립트 코드


면도기와 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]);
    }

<text>자바 스크립트로 cshtml 코드 모두에 태그를 사용할 수 있습니다.


Wrap your Razor code in @{ } when inside JS script and be aware of using just @ Sometimes it doesn't work:

function hideSurveyReminder() {
       @Session["_isSurveyPassed"] = true;
    }

This will produce

function hideSurveyReminder() {
       False = true;
    }

in browser =(

참고URL : https://stackoverflow.com/questions/5614941/mix-razor-and-javascript-code

반응형