What's wrong with the following code?

@page "/fizzbuzz"

<h1>Welcome to the FizzBuzz page!</h1>

<p>The goal of this page is to demonstrate a simple yet popular coding exercise, with results rendered as a list.</p>

<p>A for loop is used to display the numbers from 1 to 100, along with the following words where appropriate: </p>

<ul>
    <li>FizzBuzz if a number can be divided by both 3 and 5 without a remainder, using the medulo operator (%)</li>
    <li>Fizz if a number can only be divided by 3 without a remainder</li>
    <li>Buzz if a number can only be divided by 5 without a remainder</li>
</ul>

<p>Where a number doesn't fit the criteria set out above, only the number itself will be displayed.</p>

<button class="btn btn-primary" @onclick="RenderFizzBuzz"></button>

@{
    void RenderFizzBuzz()
    {
        string output = "";
        for (int i = 1; i < 101; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            <li>@i - FizzBuzz</li>
        }
        else if (i % 3 == 0) {
            <li>@i - Fizz</li>
        }
        else if (i % 5 == 0) {
            <li>@i - Buzz</li>
        }
        else {
            <li>@i</li>
        }
        }
    }
}