No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Integrando formulario con servicios

16/19
Recursos

Aportes 9

Preguntas 3

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Sería interesante que las piezas de código que tiene guardadas así como los archivos finales estén en los recursos de la clase

creo que en este curso falta el tema de como depurar el proyecto, fundamental para cuando ocurre un error y ver que est√° pasando

addProduct.razor


@page "/addproduct"

@inject  IProductService productService;
@inject  ICategoryService categoryService;
@inject  NavigationManager NavigationManager;

<PageTitle>Add - Product</PageTitle>

<ModuleTitle Title="Add product"/>

<button class="btn btn-dark" @onclick="@(()=> NavigationManager.NavigateTo("/product"))"> Go back products</button>
<EditForm Model="@product" OnSubmit="@Save">
    <div class="row">
            <div class="col-8 form-group">
                <label for="title" class="col-form-label"> Title</label>

                <InputText id="title" @bind-Value="product.Title" required class="form-control"/> 
           </div>
           <div class="col form-group">
                <label for="price" class="col-form-label">Price</label>
                <InputNumber id="price" @bind-Value="product.Price" min="0" required class="form-control" />
            </div>
    </div>
    <div class="row">
        <div class="col form-group">
            <label for="category" class="col-form-label">Category</label>
            <InputSelect id="category" @bind-Value="product.CategoryId" required class="form-control">
                <option>Select Category...</option>
                @foreach (var category in categories)
                {
                    <option value="@category.Id">@category.Name</option>
                }
            </InputSelect>
        </div>
        <div class="col form-group">
            <label for="image" class="col-form-label">Image (Url)</label>
            <InputText id="image" @bind-Value="product.Image" required class="form-control" />
        </div>
    </div>
    <div class="form-group">
        <label for="description" class="col-form-label">Description</label>
        <InputTextArea id="description" @bind-Value="product.Description" required class="form-control"></InputTextArea>
    </div>

    <hr />
    <button class="btn btn-primary" type="submit">Save</button>
</EditForm>


@code{
    private Product product=new();

     private List<Category> categories = new List<Category>();

    protected override async Task OnInitializedAsync()
    {
        categories = await categoryService.Get();
    }

    private async Task Save()
    {
        product.Images = new string[1] { product.Image };
        await productService.Add(product);
        NavigationManager.NavigateTo("/product");
    }

 }
Me respondo ;) ![](https://static.platzi.com/media/user_upload/image-ac2a4ccd-c365-4058-aa17-5bf6baff33fd.jpg)
El cogio me pide `@using BlazorApp1.Models;` es necesario? no estoy seguro por que no lo veo en el codigo de la clase. Y si no se incluye, como se hace el llamada del modelo en la instanciacion: `private Product product = new();`
pienso igual deberia estar en el recurso de clase, me sale error en categoria en la lista..no se si esta caida la API de categoria, o cual es la falla
A lot of issues with the code in this cool course, for example, the result of the Product Module is below, at least in Nov 2023. (Maybe the api changed or idk). ```js namespace BlazorApp1.Models { public partial class Product { public long Id { get; set; } public string Title { get; set; } public long Price { get; set; } public string Description { get; set; } public Uri[] Images { get; set; } public DateTimeOffset CreationAt { get; set; } public DateTimeOffset UpdatedAt { get; set; } public Category Category { get; set; } } } ```namespace BlazorApp1.Models { public partial class Product { public long Id { get; set; } public string Title { get; set; } public long Price { get; set; } public string Description { get; set; } public Uri\[] Images { get; set; } public DateTimeOffset CreationAt { get; set; } public DateTimeOffset UpdatedAt { get; set; } public Category Category { get; set; } } }

Todo muy claro.
Gracias profe.