IT story

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

hot-time 2020. 7. 2. 07:35
반응형

면도기를 사용하여 부울을 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"가 아닌 "True"를 출력하는 이유


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

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

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

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

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

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

참고 : https://stackoverflow.com/questions/14448604/using-razor-how-do-i-render-a-boolean-to-a-javascript-variable

반응형