Saltar al contenido

Blazor en MVC: el componente se renderiza, pero @onclick no funciona. Problema con la conexión

Solución:

La solución al problema fue cambiar dos cosas:

  • Para arreglar los errores en la consola tuve que poner <base href="https://foroayuda.es/" /> en el encabezado de _Layout.cshtml
  • Para solucionar el problema real de @onclick, tuve que poner estas declaraciones de uso en el componente Blazor:
@using Microsoft.AspNetCore.Components
@using Microsoft.AspNetCore.Components.Web;

Después de eso, @onclick estuvo funcionando e intellisense reconoció cosas un poco mejor en el componente Blazor.

De los documentos: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/index?view=aspnetcore-3.0&tabs=visual-studio#app-base-path

Ruta base de la aplicación

los ruta base de la aplicación es la ruta URL raíz de la aplicación. Considere la siguiente aplicación ASP.NET Core y la subaplicación Blazor:

  • La aplicación ASP.NET Core se denomina MyApp:
    • La aplicación reside físicamente en d: / MyApp.
    • Las solicitudes se reciben en https://www.contoso.com/{MYAPP RESOURCE}.
  • Una aplicación Blazor llamada CoolApp es una sub-aplicación de MyApp:
    • La sub-aplicación reside físicamente en d: / MyApp / CoolApp.
    • Las solicitudes se reciben en https://www.contoso.com/CoolApp/{COOLAPP RESOURCE}.

Sin especificar una configuración adicional para CoolApp, la aplicación secundaria en este escenario no tiene conocimiento de dónde reside en el servidor. Por ejemplo, la aplicación no puede construir URL relativas correctas para sus recursos sin saber que reside en la ruta de URL relativa. /CoolApp/.

Para proporcionar la configuración de la ruta base de la aplicación Blazor de https://www.contoso.com/CoolApp/, los <base> etiqueta href atributo se establece en la ruta raíz relativa en el Pages / _Host.cshtml archivo (Blazor Server) o wwwroot / index.html archivo (Blazor WebAssembly):

<base href="https://foroayuda.es/CoolApp/">

Las aplicaciones de Blazor Server también establecen la ruta base del lado del servidor llamando a la canalización de solicitudes de la aplicación de Startup.Configure:

app.UsePathBase("/CoolApp");

Al proporcionar la ruta URL relativa, un componente que no está en el directorio raíz puede construir URL relativas a la ruta raíz de la aplicación. Los componentes en diferentes niveles de la estructura del directorio pueden crear enlaces a otros recursos en ubicaciones a lo largo de la aplicación. La ruta base de la aplicación también se utiliza para interceptar hipervínculos seleccionados donde href el destino del enlace está dentro del espacio URI de la ruta base de la aplicación. El enrutador Blazor maneja la navegación interna.

En muchos escenarios de alojamiento, la ruta URL relativa a la aplicación es la raíz de la aplicación. En estos casos, la ruta base relativa de la URL de la aplicación es una barra inclinada (<base href="https://foroayuda.es/" />), que es la configuración predeterminada para una aplicación Blazor. En otros escenarios de hospedaje, como las páginas de GitHub y las sub-aplicaciones de IIS, la ruta base de la aplicación debe establecerse en la ruta URL relativa del servidor de la aplicación.

Para configurar la ruta base de la aplicación, actualice el <base> etiqueta dentro de la <head> elementos de etiqueta del Pages / _Host.cshtml archivo (Blazor Server) o wwwroot / index.html archivo (Blazor WebAssembly). Selecciona el href valor de atributo a /{RELATIVE URL PATH}/ (se requiere la barra al final), donde {RELATIVE URL PATH} es la ruta URL relativa completa de la aplicación.

Para una aplicación Blazor WebAssembly con una ruta de URL relativa no raíz (por ejemplo, <base href="https://foroayuda.es/CoolApp/">), la aplicación no encuentra sus recursos. cuando se ejecuta localmente. Para superar este problema durante el desarrollo y las pruebas locales, puede proporcionar un base del camino argumento que coincide con el href valor de la <base> etiqueta en tiempo de ejecución. No incluya una barra al final. Para pasar el argumento base de la ruta al ejecutar la aplicación localmente, ejecute el dotnet run comando desde el directorio de la aplicación con el --pathbase opción:

dotnet run --pathbase=/{RELATIVE URL PATH (no trailing slash)}

Para una aplicación Blazor WebAssembly con una ruta URL relativa de /CoolApp/ (<base href="https://foroayuda.es/CoolApp/">), el comando es:

dotnet run --pathbase=/CoolApp

La aplicación Blazor WebAssembly responde localmente en http://localhost:port/CoolApp.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *