I have the following code in my .cshtml file
<form asp-page-handler="button"  method="post">
    <label class="form-label">Username</label>
    <input  name="username" id="username" placeholder="Username" type="text" />
    <button class=button-gap onclick="@grabStats()">Find stats</button>   
</form>
The problem is the function grabStats() runs on pageLoad and returns an error
Is there a reason why an onclick event is fired when the page loads without the button being clicked?
For more clarity:
@functions{
    private async Task<string> Stats()
    {
        var username  = Request.Form["username"];
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("User-Agent", "Activity chooser");
         String url = "https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=" + username;
          HttpResponseMessage response = await client.GetAsync(url);
          response.EnsureSuccessStatusCode();
          string responseBody = await response.Content.ReadAsStringAsync();
        return responseBody;
    }
    private String grabStats()
    {
        var statsRaw = Stats().Result;
        Models.Player player = new Models.Player();
        return ""; //Later return useful stuff
    }
}
 
    