본문 바로가기
프로그래밍/Blazor

Blazor에서 @code{}와 @{}에 대해서

by bantomak 2023. 5. 15.

@code{...}

Razor 구성요소에서만 유효합니다.(.razor 파일)

이 블록을 사용하면 Razor 구성요소에 C# 멤버(필드, 속성 및 메서드)를 추가할 수 있습니다.

//razor
@code {
    // C# members (fields, properties, and methods)
}

 

@{...} (Razor code blocks)

Razor 코드 블록은 @로 시작하고 {}으로 감싸집니다.

표현식과 다르게 코드 블럭 안에 있는 C# 코드는 렌더링 되지 않습니다.

 

뷰 안에 코드 블록과 표현식은 동일한 스코프를 공유하며 순서대로 정의됩니다.

@{
    var quote = "The future depends on what you do today. - Mahatma Gandhi";
}

<p>@quote</p>

@{
    quote = "Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr.";
}

<p>@quote</p>

 

OutPut:

<p>The future depends on what you do today. - Mahatma Gandhi</p>
<p>Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr.</p>

 

코드 블록 안에서 마크업과 함께 지역 함수로 선언하면 템플릿 메서드로 사용이 가능합니다.

@{
    void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }

    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

 

Output:

<p>Name: <strong>Mahatma Gandhi</strong></p>
<p>Name: <strong>Martin Luther King, Jr.</strong></p>

댓글