ASP.NET Executa l'allotjament web de Blazor amb una visualització MVC bàsica
entorn
- Estudi visual
-
- Visual Studio 2019
- .NET
-
- .NET 5.0
Al principi
Com que Blazor WebAssembly és una tecnologia client, no importa com funcioni el servidor web. No obstant això, per poder servir WebAssembly als clients, com a mínim, es requereix una configuració del servidor. Executem el programa del servidor com ASP.NET Core MVC a Blazor WebAssembly.
Creació d'un Blazor WebAssembly
Ara només hem d'assegurar-nos que Blazor WebAssembly funcioni, així que ho deixarem tal com era quan vam crear el projecte.
El nom del projecte o el nom de la solució és arbitrari.
La pantalla "ASP.NET allotjada al nucli" que es mostra a la pantalla d'informació addicional també pot funcionar com a MVC, però el projecte resultant és a prop del servidor de l'API, de manera que no ho comprovarem aquí.
S'està publicant Blazor WebAssembly
Publica fitxers per implementar Blazor WebAssembly a un projecte MVC ASP.NET Core.
Feu clic amb el botó dret del ratolí al projecte i trieu Publica.
Seleccioneu carpetes.
Deixa la destinació de publicació per defecte.
Apareix la pantalla de publicació. Podeu establir diverses opcions de configuració, però de moment, el botó "Publica" es deixa com a predeterminat.
Espereu que la publicació comenci i es completi correctament. Tingueu en compte que els camins de carpetes llargs poden fallar.
Podeu verificar que el fitxer s'ha creat a la carpeta especificada. Si s'especifica com a camí relatiu, la destinació és relativa al projecte.
Crear un projecte MVC ASP.NET Core
A continuació, creeu un ASP.NET projecte Core MVC. Obrir Visual Studio per separat pot ser tediós, de manera que creeu-lo dins de la solució Blazor WebAssembly. Atès que els dos projectes no estan vinculats aquesta vegada, no hi ha cap problema encara que es creen per separat.
El nom del projecte és opcional. La resta de paràmetres es deixen per defecte.
Atès que el costat de Blazor assumeix que el desenvolupament s'ha completat ASP.NET el projecte en el costat MVC central és una startup.
Creació de visualitzacions per a l'assemblat de Blazor
Aquesta àrea canviarà en funció del projecte que realment esteu creant, així que modifiqueu-lo segons aquest projecte. Aquí, el modificarem en funció de la configuració del projecte de mostra.
Bàsicament, s'ha de modificar per assemblar-se al creat quan publiqueu l'assemblat index.html
blazor.
S'està corregint _Layout.cshtml
Vull fer referència al CSS de l'Assemblea de Blazor, perquè pugui escriure-ho directament a . _Layout.cshtml
Volem que s'apliqui només a la pàgina de destinació tant com sigui possible, de manera que puguem ampliar-la afegint-la de manera RenderSectionAsync
que es puguin escriure enllaços al CSS a cada pàgina.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - AspNetCoreMvc</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
@* 追加 *@
@await RenderSectionAsync("Styles", required: false)
</head>
<body>
<!-- 以下同じなので省略 -->
Afegeix una pàgina per a l'assemblat de Blazor
Afegiu una pàgina dedicada per mostrar l'assemblat de Blazor. ASP.NET L'addició de pàgines normal i el procediment en el MVC principal són els mateixos.
HomeController
Afegeix les accions següents al . El costat del servidor no fa res en particular, de manera que només retorna la vista.
HomeControlador.cs
// 省略
namespace AspNetCoreMvc.Controllers
{
public class HomeController : Controller
{
// 省略
// 追加
public IActionResult Blazor()
{
return View();
}
}
}
Feu clic amb el botó dret del ratolí a l'acció per afegir una visualització.
No hi ha res a fer, així que afegiu-lo tal com és.
Es crea la visualització.
Utilitzant el generat en el moment de la publicació de l'Assemblea index.html
blazor, el refem de la següent manera.
Blazor.cshtml
@{
ViewData["Title"] = "Blazor";
}
@section Styles {
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<link href="BlazorWebAssemblySample.styles.css" rel="stylesheet" />
}
<div id="app">Loading...</div>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
@section Scripts {
<script src="_framework/blazor.webassembly.js"></script>
}
Afegiu un enllaç perquè pugueu navegar a la pàgina de Blazor.
index.cshtml
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
@* 追加 *@
<a asp-action="Blazor">Blazor</a>
Afegeix la referència microsoft.AspNetCore.Components.WebAssembly.Server
Startup.cs
No cal que escriviu el codi necessari vosaltres mateixos, però per facilitar-ho obteniu de Microsoft.AspNetCore.Components.WebAssembly.Server
NuGet.
Feu clic amb el botó dret del ratolí Dependències i seleccioneu Administra els paquets NuGet.
Seleccioneu la pestanya Administració i introduïu Microsoft.AspNetCore.Components.WebAssembly.Server al camp de cerca.
Es mostra un paquet amb el mateix nom, així que instal·leu-lo.
Verifiqueu que s'ha afegit el paquet.
Canvis a l'inici.cs
app.UseHttpsRedirection();
Insereix el codi següent a la línia següent a la línia:
app.UseBlazorFrameworkFiles();
S'està implementant Blazor WebAssembly
Bàsicament, podeu posar la carpeta wwwroot de Blazor WebAssembly publicada tal com es troba a la carpeta wwwroot de ASP.NEt Core,index.html
però hauríeu d'eliminar-la perquè ja no serà necessària.
A més, ja que esfavicon.ico
dobla, decidiu quina icona utilitzar.
En alliberar amb PWA, si heu exclòs fitxers (com ara index.html) a la carpeta wwwroot,
Haureu d'obrir en un editor de text, també a la carpeta wwwroot, i suprimir els registres service-worker-assets.js
del fitxer exclòs.
En cas contrari, és possible que rebeu un error intern quan obriu una pantalla web.
Quan publiqueu una aplicació blazor, no cal que ho feu manualment excloent fitxers innecessaris del vostre projecte.
En el cas dels PWAs, es produeixen errors interns si no es troben en un entorn https. No es pot instal·lar com a PWA.
Confirmació de l'execució
ASP.NET Debug executen el projecte Core MVC. Visiteu la pàgina de Blazor i verifiqueu que la disposició de l'assemblat blazor aparegui a la pàgina. Seleccioneu el menú de l'esquerra i verifiqueu que cada característica funcioni.
Quant als URL
Si feu clic al menú de l'esquerra de l'assemblat de Blazor que es mostra a la pàgina, notareu que l'URL canvia. Aquest comportament no segueix el comportament d'URL esperat per ASP.NET MVC principal, de manera que, si és possible, l'assemblat Blazor hauria de crear preferentment l'URL de manera que l'URL no canviï.
Quan obriu una pàgina de Blazor
Quan feu clic al menú Comptador
Registre de canvis
- 2022/7/12
-
- S'han afegit punts a tenir en compte en excloure fitxers innecessaris en la col·locació d'arxius de l'aplicació Blazor publicada.
- 2022/3/30
-
- primera edició