0
votes

Comment corriger l'erreur `` Le nom de type n'existe pas '' en C # tout en ayant l'espace de noms et le répertoire corrects

Je rencontre un problème en essayant de créer un projet à cause du même résultat d'erreur. Cette erreur indique:

@page "/househubform"
@page "/househubform/{EditId:int}"

@using NeighborHub.Data

@inject Data.ApplicationDbContext db
@inject NavigationManager UriHelper

@attribute [Authorize(Roles = "admin")]

<div class="card">
    <h3 class="card-header text-center">Add a New HouseHub</h3>
    //Some Html code

@*--- Code Below ---*@
@code {
    //Variables used to fill the form
    Data.HouseHub houseHub = new Data.HouseHub();
    private string varSurname { get; set; } = null;
    private string varHouseNumber { get; set; } = null;
    private int varHouseholdSize { get; set; } = 0;
    private int FKId { get; set; } = 0;

    //Drowdown list
    private List<Data.NeighborHub> NeighborHub = new List<Data.NeighborHub>();

    //Error Msg
    public string Errmsg { get; set; }

    //Parameters
    [Parameter]
    public int EditId { get; set; } = 0;

    //On change select list update
    private void SelectListUpdate(ChangeEventArgs Event)
    {
        FKId = Int32.Parse(Event.Value.ToString());
    }

    //Submit form to database
    private async Task SubmitForm()
    {
        //Submit logic and validation
    }

    //Edit form to database
    private async Task EditForm()
    {
        //Edit logic and validation
    }

    //Initializing logic using Async Task
    protected override async Task OnInitializedAsync()
    {
        //If EditId is passed it will start filling the entity to edit
        if (EditId != 0)
        {
            houseHub = await db.DbHouseHubs.FindAsync(EditId);
            //The following will occur only if the entity is found
            if (houseHub != null)
            {
                varSurname = houseHub.Surname;
                varHouseNumber = houseHub.HouseNumber;
                varHouseholdSize = houseHub.HouseholdSize;
                FKId = houseHub.NeighborhubId;
                NeighborHub = db.DbNeighborHubs.ToList();
            }
            //If the entity is not found it will set an error
            else
            {
                Errmsg = "Could not find the entity. Add a new entry or cancel.";
                EditId = 0;
                NeighborHub = db.DbNeighborHubs.ToList();
            }
        }
        //If set to 0 this will create a new entry
        else
        {
            NeighborHub = db.DbNeighborHubs.ToList();
        }
    }
}

https://ibb.co/fDZ0Pyb - Image de l'IDE avec le code d'erreur et la structure du projet. Cette alternative d'image est due au fait que ma faible réputation ne me permet pas de publier des images.

J'ai essayé de chercher une réponse pour résoudre ce problème. Toutes les méthodes que j'ai essayées (par exemple: exclure le dossier puis le rajouter, supprimer le dossier .vs et autres) ont échoué.

Dans Blazor, le fichier _Imports.razor contient tous les fichiers utilisés dans l'application. Dans ce fichier, j'ajoute les instructions d'utilisation suivantes.

@using NeighborHub
@using NeighborHub.Shared
@using NeighborHub.Data

Je suppose que parce que le dossier existe, cette erreur ne devrait pas apparaître. S'il me manque quelque chose, aidez-moi. Si cela pouvait être reconnu comme un bogue, comment puis-je résoudre ce problème ou devrais-je ouvrir un nouveau problème sur github.

POST EDIT https://ibb.co/sqGyw23 - Cette image ajoute plus de détails sur l'EDI et l'erreur. p>

Ajoutant à cela, j'utilise .NET Core 3.0 preview 9 qui est sorti il ​​n'y a pas longtemps.

La page de rasoir qui entraîne l'erreur est la suivante:

The type 'Shared' (my guess the folder) does not exist in the type 'MyNameSpace'.


3 commentaires

L'erreur est sur MainLayout.razor.g.cs . Je pense que nous devons voir cette page, mais je ne connais pas trop le rasoir. Il semble que Shared existe, mais il n'est pas utilisé correctement.


Jusqu'à ce que nous voyions la page du rasoir, nous ne pouvons pas le dire avec certitude. Je suppose que vous pouvez avoir des classes dans le dossier partagé, mais aucune d'elles ne l'utilise réellement dans le cadre de l'espace de noms. Ce n'est pas parce qu'un fichier existe dans un dossier qu'il se trouve dans cet espace de noms.


J'ai mis à jour le code pour afficher la forme du rasoir. Je suis toujours en train de prototyper les fonctionnalités de Blazor, cela ressemble à un gâchis, mais je n'arrive pas à trouver l'erreur (mon erreur) en raison du manque de connaissances que j'ai encore dans Blazor.


3 Réponses :


0
votes

Notez que le message d'erreur indique que Type Shared n'existe pas. Je peux voir deux erreurs de novice qui peuvent être ici: - Vous utilisez @inject NeighborHub - vous oubliez d'ajouter du type lorsque vous déclarez une variable.


0 commentaires

1
votes

J'ai donc retracé l'erreur et il semble que ce soit probablement un bogue.

Dans le fichier _Imports.razor, j'avais ce qui suit:

@using NeighborHub.Data

Alors je suis allé avant et supprimez

@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Rendering
@using Microsoft.AspNetCore.Components.RenderTree
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
@using NeighborHub
@using NeighborHub.Shared
@using NeighborHub.Data //Cause of the error

D'une manière ou d'une autre, cela semble tout régler. Pourquoi? Je ne suis pas du tout sûr de savoir pourquoi cette instruction @using Namespace.Data a causé l'erreur.


0 commentaires

0
votes

J'ai eu le même problème. J'ai pu résoudre ce problème en supprimant le nom de la solution de l'espace de noms. Par exemple.

@en utilisant NeghborHub.Data

à:

@utilisation des données

Faites-moi savoir si cela fonctionne pour vous.


0 commentaires