web-dev-qa-db-fra.com

Multiples boutons Soumettre dans Blazor EdidLowForm?

Utilisation d'ASPnet Blazor et de Son Editform: je crée une forme simple qui doit contenir à la fois une mise à jour et un bouton Supprimer. Je ne semble pas trouver d'exemples de la manière de passer des paramètres à la soumission.

J'ai essayé de placer un @ONClick dans le bouton Supprimer pointant vers DeleteObject, mais je ne reçois aucune validation (je n'ai pas besoin de validation dans ce cas, mais je veux le faire quand même), plus que le sauvegardise a également été appelé. la suppression ...

<EditForm Model="@selectedCar" OnValidSubmit="@SaveObject">
    <DataAnnotationsValidator />
    <ValidationSummary />

    ....My <InputText>'s for all values I have in my object

    <button type="submit" class="btn btn-primary" value="Save">Spara</button>
    <button type="submit" class="btn btn-primary" value="Delete">Delete</button>
</EditForm>


@code {
    [Parameter]
    public string Id { get; set; }

    CarModel selectedCar;

    protected override async Task OnInitializedAsync()
    {
        selectedCar = await _CarService.GetCar(int.Parse(Id));
    }

    protected async Task SaveObject()
    {
        selectedCar.Id = await _CarService.SaveCar(selectedCar);
    }

    protected async Task DeleteObject(int Id)
    {
        selectedCar.Id = await _CarService.DeleteCar(selectedCar);
    }
}

Je veux pouvoir appeler des fonctions spécifiques pour chaque bouton, sans faire la validation.

Quelqu'un a-t-il une bonne idée de comment faire cela?

11
Anders K

Les deux boutons soumettront le formulaire avec les validations.
Et puis vous pouvez vérifier sur le booléen et appeler toute logique que vous souhaitez:

<EditForm Model="@Input" OnValidSubmit="@UpdateAsync">
    <DataAnnotationsValidator />
    <div class="row">
        <div class="form-group col-md-12">
            <label class="required"> Name</label>
            <InputText class="form-control" @bind-Value="Input.Name" />
            <span class="err"><ValidationMessage For="@(() => Input.Name)" /></span>
        </div>
    </div>
    <div class="text-center">
     <button type="submit" @onclick="@(()=> Input.IsNew = false)" class="btn">save 1</button>
     <button type="submit" @onclick="@(()=> Input.IsNew = true)" class="btn">save 2</button>
    </div>
</EditForm> 


@code{
async Task UpdateAsync()
    {

        if (Input.IsNew)
        {
//do somthing 
        }
        else
        {
//do another somthing 
        }
    }
}
0
Mohamed Omera