[javascript] 면도기를 사용하여 부울을 JavaScript 변수에 어떻게 렌더링합니까?

cshtml 파일에서 부울을 JavaScript 변수로 렌더링하는 방법

현재 이것은 구문 오류를 보여줍니다.

<script type="text/javascript" >

    var myViewModel = {
        isFollowing: @Model.IsFollowing  // This is a C# bool
    };
</script>



답변

시도해 볼 수도 있습니다.

isFollowing: '@(Model.IsFollowing)' === '@true'

그리고 더 나은 방법은 다음을 사용하는 것입니다.

isFollowing: @Json.Encode(Model.IsFollowing)


답변

JSON 부울은 소문자 여야합니다.

따라서 이것을 시도하십시오 (그리고 //줄에 주석을 달지 않도록하십시오 ).

var myViewModel = {
    isFollowing: @Model.IsFollowing.ToString().ToLower()
};

또는 (참고 : 네임 스페이스를 사용해야합니다 System.Xml) :

var myViewModel = {
    isFollowing: @XmlConvert.ToString(Model.IsFollowing)
};


답변

검색으로 인해 나를 여기로 데려 왔기 때문에 ASP.NET Core에서 방법 IJsonHelper이 없습니다 Encode(). 대신을 사용하십시오 Serialize(). 예 :

isFollowing: @Json.Serialize(Model.IsFollowing)    


답변

var myViewModel = {
    isFollowing: '@(Model.IsFollowing)' == "True";
};

True하지 true물어 … 좋은 질문 :
왜에서 Boolean.toString 출력을한다 “참”과 “true”로하지


답변

!!를 사용하여 고려해야 할 또 다른 옵션이 있습니다. 부울로 변환.

isFollowing: !!(@Model.IsFollowing ? 1 : 0)

이렇게하면 클라이언트 측에서 다음이 생성되며 1은 true로, 0은 false로 변환됩니다.

isFollowing: !!(1)  -- or !!(0)


답변

더 읽기 쉬운 해결책은 다음과 같습니다.

isFollowing: @(Model.IsFollowing ? "true" : "false")


답변