¿Por qué los componentes de esta aplicación Blazor no se procesan?

asp.net-core blazor

Pregunta

Estoy escribiendo una aplicación Blazor y, obviamente, quiero obtener algunos componentes procesados ​​allí. Acabo de intentar agregar un elemento de navegación básico a mi diseño principal, pero no está renderizado. Puedo ver el elemento en el DOM, pero ese elemento está vacío.

Comencé con un contenido bastante simple para comenzar en mi componente NavMenu que estoy tratando de incluir en MainLayout.cshtml:

<h1>WHYYYY????</h1>

También he tomado un diseño bastante simple en mi página MainLayout.cshtml:

<h1>WHYYYY????</h1>

La estructura de archivos en mi proyecto parece sin complicaciones:

introduzca la descripción de la imagen aquí

Así que estoy perdido aquí en cuanto a lo que he pasado por alto. Parece que Blazor sabe que hay algo que debería estar representando en la página, por eso puedo ver el elemento NavMenu en el DOM. Pero nunca hay contenido renderizado dentro de ese elemento. ¿Qué falta?

Componente NavMenu Blazor

Estoy ejecutando la última versión (al momento de escribir) de Blazor: 0.5.1.

Respuesta aceptada

Resulta que la causa raíz estaba relacionada con los espacios de nombres y la carcasa.

Cuando configuré el proyecto originalmente, lo creé usando la línea de comandos en el Código VS. Por costumbre, escribí todo en minúsculas (es decir, dotnet new blazor -o myapp ).

Como una preferencia personal, me gusta que mis espacios de nombres estén en mayúsculas, así que un tiempo después decidí "arreglar" y cambiar myapp a Myapp . Revisé el código para refactorizar el nuevo nombre de titlecase y todo lo compilado, así que seguí trabajando ... hasta unas semanas después, cuando volví a trabajar en un componente y noté que no se estaba comportando.

Resulta que las páginas de afeitar tienen un espacio de nombre basado en carpetas y un subconjunto de ellas se incluyen en la página _ViewImports.cshtml . Ese archivo aún hacía referencia al espacio de nombres en minúsculas y las páginas que buscaban una raíz de proyecto en minúsculas ya no podían encontrar los componentes compartidos correctos.

Como era de esperar, es un problema totalmente autoinfligido y sí, me siento muy tonto por no haberlo pensado correctamente desde el principio.


Respuesta popular

Probablemente se está ejecutando en un error con el archivo .csproj. Debe tener un aspecto como este:

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
   <TargetFramework>netstandard2.0</TargetFramework>
   <RunCommand>dotnet</RunCommand>
   <RunArguments>blazor serve</RunArguments>
   <LangVersion>7.3</LangVersion>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.5.1" />
  <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.5.1" />
  <DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.5.1" />
</ItemGroup>

Lo más probable es que el tuyo tenga cosas extra, lo que evita que el componente se compile. Esto suele suceder al agregar archivos o copiarlos. Consulte: https://github.com/aspnet/Blazor/issues/1206




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué