Skip to content

Blazor refreshing after clicking cancel or saving record. #6572

@jacobrivera12

Description

@jacobrivera12

Describe the bug

Its a very weird bug since I installed a new template on my project. Everytime when I attempt to edit a record then I click Cancel or Save it just refreshes the whole page. Same thing happens when I try to delete a record. I looked over this link: https://github.com/aspnet/Blazor/issues/1356 and everything seems to be the exact same thing but it just keeps happening. I have tried everything.

To Reproduce

Steps to reproduce the behavior:

  1. Blazor 0.7.0
  2. Run this code '....'
@using BlazorCrud.Shared.Models
@page "/editemployee/{empID}"
@inject HttpClient Http
@inject Microsoft.AspNetCore.Blazor.Services.IUriHelper UriHelper

<h2>Edit</h2>
<h4>Employees</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <div class="form-group">
            <label for="Name" class="control-label">Name</label>
            <input for="Name" class="form-control" bind="@emp.Name" />
        </div>
        <div class="form-group">
            <label asp-for="Gender" class="control-label">Gender</label>
            <select asp-for="Gender" class="form-control" bind="@emp.Gender">
                <option value="">-- Select Gender --</option>
                <option value="Male">Male</option>
                <option value="Female">Female</option>
            </select>
        </div>
        <div class="form-group">
            <label asp-for="Department" class="control-label">Department</label>
            <input asp-for="Department" class="form-control" bind="@emp.Department" />
        </div>
        <div class=" form-group">
            <label asp-for="City" class="control-label">City</label>
            <input asp-for="City" class="form-control" bind="@emp.City" />
        </div>
        <div class=" form-group">
            <label asp-for="Date" class="control-label">City</label>
            <input asp-for="Date" class="form-control" bind="@emp.Date" />
        </div>
        <div class="form-group">
            <button type="button" class="btn btn-default" onclick="@(async () => await UpdateEmployee())">Save</button>
            <button type="button" onclick=@cancel  class="btn">Cancel</button>
        </div>

    </div>
</div>

@functions {

    [Parameter]
    string empID { get; set; }

    Employees emp = new Employees();

    protected override async Task OnInitAsync()
    {
            emp = await Http.GetJsonAsync<Employees>("/api/Employee/Details/" + empID);
    }


    protected async Task UpdateEmployee()
    {
        await Http.SendJsonAsync(HttpMethod.Put, "api/Employee/Edit", emp);
        UriHelper.NavigateTo("/fetchemployee");

    }

    void cancel()
    {
        UriHelper.NavigateTo("/fetchemployee");

    }

}

Expected behavior

Expected my code to not refresh the page.

The only thing I see different from my Add employee and Edit/Delete employee code is the {empID} parameter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-blazorIncludes: Blazor, Razor Components

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions