Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informaceTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Tento článek ukazuje, jak upgradovat aplikaci ASP.NET Framework MVC nebo web API na ASP.NET Core MVC pomocí pomocníka pro upgrade sady Visual Studio .NET a přístupu přírůstkové aktualizace.
Pokud má váš projekt .NET Framework podpůrné knihovny v požadovaném řešení, měly by být upgradovány na .NET Standard 2.0, pokud je to možné. Další informace najdete v tématu Upgrade podpůrných knihoven.
<Framework ProjectCore>
se teď připojuje prostřednictvím proxy serveru Yarp. A výsečový graf znázorňující migrované koncové body. <Framework Project>
Vyberte Upgradovat kontroler a pak vyberte kontroler, který chcete upgradovat.Pokud chcete pokračovat v procesu aktualizace, postupujte podle kroků v části Začínáme s přírůstkovými ASP.NET ASP.NET Core .
Tento článek ukazuje, jak začít migrovat projekt ASP.NET MVC na ASP.NET Core MVC. V procesu se zvýrazní související změny z ASP.NET MVC.
Migrace z ASP.NET MVC je proces s více kroky. Tento článek se věnuje následujícím tématům:
Informace o migraci konfigurace a Identity kódu najdete v tématu Migrace konfigurace do ASP.NET core a migrace ověřování a Identity ASP.NET Core.
Vytvořte příklad projektu ASP.NET MVC v sadě Visual Studio pro migraci:
Vytvořte nové řešení s novým projektem ASP.NET Core pro migraci na:
V ASP.NET Core 3.0 a novějších projektech už rozhraní .NET Framework není podporovanou cílovou architekturou. Váš projekt musí cílit na .NET Core. Sdílená architektura ASP.NET Core, která zahrnuje MVC, je součástí instalace modulu runtime .NET Core. Sdílená architektura se automaticky odkazuje při použití Microsoft.NET.Sdk.Web
sady SDK v souboru projektu:
<Project Sdk="Microsoft.NET.Sdk.Web">
Další informace naleznete v tématu Framework reference.
V ASP.NET Core třída Startup
:
Další informace najdete v tématu Spuštění aplikace v ASP.NET Core.
V projektu ASP.NET Core otevřete Startup.cs
soubor:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.NET aplikací Core se musí přihlásit k funkcím architektury s middlewarem. Předchozí kód vygenerovaný šablonou přidá následující služby a middleware:
Microsoft.AspNetCore.StaticFiles
souboru . Rozšiřující UseStaticFiles
metoda musí být volána před UseRouting
. Další informace najdete v tématu Statické soubory v ASP.NET Core.Tato stávající konfigurace zahrnuje to, co je potřeba k migraci ukázkového projektu ASP.NET MVC. Další informace o možnostech middlewaru ASP.NET Core najdete v tématu Spuštění aplikace v ASP.NET Core.
V projektu ASP.NET Core by se přidala nová prázdná třída kontroleru a třída zobrazení, která bude sloužit jako zástupné symboly, které používají stejné názvy jako kontroler a třídy zobrazení v libovolném projektu ASP.NET MVC pro migraci.
Projekt ASP.NET Core WebApp1 už obsahuje minimální ukázkový kontroler a zobrazení se stejným názvem jako projekt ASP.NET MVC. Ty tedy budou sloužit jako zástupné symboly pro kontroleru ASP.NET MVC a zobrazení, která se mají migrovat z projektu ASP.NET MVC WebApp1 .
HomeController
a nahraďte nové metody ASP.NET Core HomeController
. Návratový typ metod akcí není nutné měnit. Návratový typ návratové metody akce kontroleru MVC ASP.NET MVC integrované šablony je ActionResult; v ASP.NET Core MVC se metody akcí vrátí IActionResult
. ActionResult
implementuje IActionResult
.About.cshtml
Vyberte položku , Contact.cshtml
a Index.cshtml
Razor zobrazte soubory a pak vyberte Přidat a nahraďte stávající soubory.Další informace najdete v tématu Zpracování požadavků pomocí kontrolerů v ASP.NET Core MVC a zobrazeních v ASP.NET Core MVC.
Každý koncový bod kontroleru je možné testovat, ale rozložení a styly jsou popsané dále v dokumentu.
https://localhost:44375/home/about
.V ASP.NET MVC 5 a starších byl statický obsah hostovaný z kořenového adresáře webového projektu a byl intermixován se soubory na straně serveru. V ASP.NET Core se statické soubory ukládají do webového kořenového adresáře projektu. Výchozí adresář je {content root}/wwwroot, ale dá se změnit. Další informace najdete v tématu Statické soubory v ASP.NET Core.
Zkopírujte statický obsah z projektu ASP.NET MVC WebApp1 do adresáře wwwroot v projektu ASP.NET Core WebApp1 :
Zkopírujte soubory rozložení projektu ASP.NET MVC do projektu ASP.NET Core:
_ViewStart.cshtml
Vyberte soubor a pak vyberte Přidat.Zkopírujte soubory sdíleného rozložení projektu ASP.NET MVC do projektu ASP.NET Core:
_Layout.cshtml
Vyberte soubor a pak vyberte Přidat a nahraďte stávající soubor.V projektu ASP.NET Core otevřete _Layout.cshtml
soubor. Proveďte následující změny tak, aby odpovídaly dokončeného kódu uvedenému níže:
Aktualizujte zahrnutí šablon stylů CSS bootstrap tak, aby odpovídalo dokončeného kódu níže:
@Styles.Render("~/Content/css")
elementem <link>
, který se má načíst bootstrap.css
(viz níže).@Scripts.Render("~/bundles/modernizr")
.Dokončený náhradní kód pro zahrnutí šablon stylů CSS bootstrap:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
Aktualizujte zahrnutí javascriptu jQuery a Bootstrap tak, aby odpovídaly dokončeného kódu níže:
@Scripts.Render("~/bundles/jquery")
elementem <script>
(viz níže).@Scripts.Render("~/bundles/bootstrap")
elementem <script>
(viz níže).Dokončený náhradní kód pro zahrnutí jQuery a Bootstrap JavaScript:
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Aktualizovaný _Layout.cshtml
soubor je uvedený níže:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Zobrazte web v prohlížeči. Měl by se vykreslit s očekávanými styly.
ASP.NET Core je kompatibilní s několika opensourcovými řešeními pro sdružování a minifikace, jako je WebOptimizer a další podobné knihovny. ASP.NET Core neposkytuje nativní řešení sdružování a minifikace. Informace o konfiguraci sdružování a minifikace najdete v tématu Sdružování a minifikace.
Existuje mnoho problémů, které mohou způsobit chybovou zprávu HTTP 500, která neobsahuje žádné informace o zdroji problému. Pokud Views/_ViewImports.cshtml
například soubor obsahuje obor názvů, který v projektu neexistuje, vygeneruje se chyba HTTP 500. Ve výchozím nastavení v aplikacích UseDeveloperExceptionPage
ASP.NET Core se rozšíření přidá do IApplicationBuilder
a spustí se při vývoji prostředí. Toto je podrobně popsáno v následujícím kódu:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.NET Core převádí neošetřené výjimky na chybové odpovědi HTTP 500. Za normálních okolností se podrobnosti o chybách do těchto odpovědí nezahrnou, aby se zabránilo zpřístupnění potenciálně citlivých informací o serveru. Další informace najdete na stránce výjimek pro vývojáře.
Tento článek ukazuje, jak začít migrovat projekt ASP.NET MVC na ASP.NET Core MVC 2.2. V procesu se zvýrazní mnoho věcí, které se změnily z ASP.NET MVC. Migrace z ASP.NET MVC je proces s více kroky. Tento článek se věnuje následujícím tématům:
Informace o migraci konfigurace a Identity kódu najdete v tématu Migrace konfigurace do ASP.NET core a migrace ověřování a Identity ASP.NET Core.
Poznámka
Čísla verzí v ukázkách nemusí být aktuální, odpovídajícím způsobem aktualizujte projekty.
Pro předvedení upgradu začneme vytvořením aplikace ASP.NET MVC. Vytvořte ho s názvem WebApp1 , aby obor názvů odpovídal projektu ASP.NET Core vytvořenému v dalším kroku.
Volitelné: Změňte název řešení z webové aplikace1 na Mvc5. Visual Studio zobrazí nový název řešení (Mvc5), který usnadňuje přehled o tomto projektu z dalšího projektu.
Vytvořte novou prázdnou webovou aplikaci ASP.NET Core se stejným názvem jako předchozí projekt (WebApp1), aby se obory názvů ve dvou projektech shodovaly. Mít stejný obor názvů usnadňuje kopírování kódu mezi těmito dvěma projekty. Pokud chcete použít stejný název, vytvořte tento projekt v jiném adresáři než předchozí projekt.
Microsoft.AspNetCore.Mvc
je architektura ASP.NET Core MVC. Microsoft.AspNetCore.StaticFiles
je obslužná rutina statického souboru. ASP.NET aplikací Core se explicitně přihlašují k middlewaru, jako je například obsluha statických souborů. Další informace naleznete v tématu Statické soubory.
Startup.cs
Otevřete soubor a změňte kód tak, aby odpovídal následujícímu:public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
Metoda UseStaticFiles rozšíření přidá obslužnou rutinu statického souboru. Další informace naleznete v tématu Spuštění a směrování aplikace.
V této části se přidá minimální kontroler a zobrazení, které slouží jako zástupné symboly pro kontroler ASP.NET MVC a zobrazení migrovaná v další části.
Přidejte adresář Kontrolerů.
Přidejte třídu kontroleru pojmenovanou HomeController.cs
do adresáře Kontrolery.
Přidejte adresář Zobrazení.
Přidejte zobrazení neboHome adresář.
Přidejte zobrazení pojmenované Index.cshtml
Razor do adresáře Views/Homedirectory.
Struktura projektu je znázorněna níže:
Views/Home/Index.cshtml
Obsah souboru nahraďte následujícím kódem:
<h1>Hello world!</h1>
Spustit aplikaci.
Další informace naleznete v tématu Kontrolery a zobrazení.
Následující funkce vyžadují migraci z ukázkového projektu ASP.NET MVC do projektu ASP.NET Core:
obsah na straně klienta (CSS, písma a skripty)
kontrolery
zobrazení
modely
Svazování
Filtry
Přihlaste se/odhlaste ( Identity to se provádí v dalším kurzu.)
Zkopírujte všechny metody z ASP.NET MVC HomeController
do nového HomeController
. V ASP.NET MVC je návratový typ návratové metody akce kontroleru integrované šablony ; ActionResultv ASP.NET Core MVC vrátí metody IActionResult
akcí místo toho. ActionResult
implementuje IActionResult
, takže není nutné měnit návratový typ metod akce.
About.cshtml
Zkopírujte soubor a Contact.cshtml
Index.cshtml
Razor zobrazte soubory z projektu ASP.NET MVC do projektu ASP.NET Core.
Soubor rozložení a styly ještě nebyly migrovány, takže vykreslená zobrazení obsahují pouze obsah v souborech zobrazení. Soubor rozložení vygenerovaný odkazy pro zobrazení About
a Contact
zobrazení ještě nebude k dispozici.
Vyvolání vykreslených zobrazení z prohlížeče v běžící aplikaci ASP.NET core tak, že nahradí aktuální číslo portu číslem portu použitým v ASP.NET základním projektu. Příklad: https://localhost:44375/home/about
.
Všimněte si chybějícího stylu a položek nabídky. Styly budou opraveny v další části.
V ASP.NET MVC 5 a starších byl statický obsah hostovaný z kořenového adresáře webového projektu a byl intermixován se soubory na straně serveru. V ASP.NET Core je statický obsah hostovaný v adresáři wwwroot . Zkopírujte statický obsah z aplikace ASP.NET MVC do adresáře wwwroot v projektu ASP.NET Core. V tomto ukázkovém převodu:
Projekt ASP.NET MVC používá metodu Bootstrap pro svůj styl a ukládá soubory Bootstrap v adresářích Obsah a Skripty . Šablona, která vygenerovala projekt ASP.NET MVC, odkazuje na Bootstrap v souboru rozložení (Views/Shared/_Layout.cshtml
). Soubory bootstrap.js
a bootstrap.css
soubory lze zkopírovat z projektu ASP.NET MVC do adresáře wwwroot v novém projektu. Místo toho tento dokument přidá podporu pro Bootstrap (a další knihovny na straně klienta) pomocí sítí CDN v další části.
_ViewStart.cshtml
Zkopírujte soubor z adresáře Zobrazení projektu ASP.NET MVC do adresáře Zobrazení projektu ASP.NET Core. V _ViewStart.cshtml
ASP.NET Core MVC se soubor nezměnil.
Vytvořte zobrazení nebo sdílený adresář.
Volitelné: Zkopírujte _ViewImports.cshtml
z adresáře Zobrazení projektu FullAspNetCore MVC do adresáře Zobrazení projektu ASP.NET Core. Odeberte všechny deklarace oboru názvů v _ViewImports.cshtml
souboru. Soubor _ViewImports.cshtml
poskytuje obory názvů pro všechny soubory zobrazení a přináší pomocné rutiny značek. Pomocné rutiny značek se používají v novém souboru rozložení. Soubor _ViewImports.cshtml
je nový pro ASP.NET Core.
_Layout.cshtml
Zkopírujte soubor z adresáře Views/Shared adresáře projektu ASP.NET MVC do adresáře Views/Shared projektu ASP.NET Core.
Otevřete _Layout.cshtml
soubor a proveďte následující změny (dokončený kód je uvedený níže):
Nahraďte @Styles.Render("~/Content/css")
elementem <link>
, který se má načíst bootstrap.css
(viz níže).
Odebrat @Scripts.Render("~/bundles/modernizr")
.
Okomentujte čáru @Html.Partial("_LoginPartial")
(ohraničujte čáru @*...*@
). Další informace najdete v tématu Migrace ověřování a Identity ASP.NET Core
Nahraďte @Scripts.Render("~/bundles/jquery")
elementem <script>
(viz níže).
Nahraďte @Scripts.Render("~/bundles/bootstrap")
elementem <script>
(viz níže).
Náhradní kód pro zahrnutí šablon stylů CSS bootstrap:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
Náhradní kód pro zahrnutí jQuery a Bootstrap JavaScriptu:
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Aktualizovaný _Layout.cshtml
soubor je uvedený níže:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
@*@Html.Partial("_LoginPartial")*@
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Zobrazte web v prohlížeči. Teď by se měl správně načíst s očekávanými styly.
Informace o konfiguraci sdružování a minifikace naleznete v tématu Sdružování a minifikace.
Existuje mnoho problémů, které mohou způsobit chybové zprávy HTTP 500, které neobsahují žádné informace o zdroji problému. Pokud Views/_ViewImports.cshtml
například soubor obsahuje obor názvů, který v projektu neexistuje, vygeneruje se chyba HTTP 500. Ve výchozím nastavení v aplikacích ASP.NET Core UseDeveloperExceptionPage
se rozšíření přidá do IApplicationBuilder
a spustí se při vývoji konfigurace. Podívejte se na příklad v následujícím kódu:
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.NET Core převádí neošetřené výjimky na chybové odpovědi HTTP 500. Za normálních okolností se podrobnosti o chybách do těchto odpovědí nezahrnou, aby se zabránilo zpřístupnění potenciálně citlivých informací o serveru. Další informace najdete na stránce výjimek pro vývojáře.
Tento článek ukazuje, jak začít migrovat projekt ASP.NET MVC na ASP.NET Core MVC 2.1. V procesu se zvýrazní mnoho věcí, které se změnily z ASP.NET MVC. Migrace z ASP.NET MVC je proces s více kroky. Tento článek se věnuje následujícím tématům:
Informace o migraci konfigurace a Identity kódu najdete v tématu Migrace konfigurace do ASP.NET core a migrace ověřování a Identity ASP.NET Core.
Poznámka
Čísla verzí v ukázkách nemusí být aktuální, odpovídajícím způsobem aktualizujte projekty.
Pro předvedení upgradu začneme vytvořením aplikace ASP.NET MVC. Vytvořte ho s názvem WebApp1 , aby obor názvů odpovídal projektu ASP.NET Core vytvořenému v dalším kroku.
Volitelné: Změňte název řešení z webové aplikace1 na Mvc5. Visual Studio zobrazí nový název řešení (Mvc5), který usnadňuje přehled o tomto projektu z dalšího projektu.
Vytvořte novou prázdnou webovou aplikaci ASP.NET Core se stejným názvem jako předchozí projekt (WebApp1), aby se obory názvů ve dvou projektech shodovaly. Mít stejný obor názvů usnadňuje kopírování kódu mezi těmito dvěma projekty. Pokud chcete použít stejný název, vytvořte tento projekt v jiném adresáři než předchozí projekt.
Microsoft.AspNetCore.Mvc
je architektura ASP.NET Core MVC. Microsoft.AspNetCore.StaticFiles
je obslužná rutina statického souboru. ASP.NET aplikací Core se explicitně přihlašují k middlewaru, jako je například obsluha statických souborů. Další informace naleznete v tématu Statické soubory.
Startup.cs
Otevřete soubor a změňte kód tak, aby odpovídal následujícímu:public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
Metoda UseStaticFiles rozšíření přidá obslužnou rutinu statického souboru. Metoda UseMvc
rozšíření přidává směrování. Další informace naleznete v tématu Spuštění a směrování aplikace.
V této části se přidá minimální kontroler a zobrazení, které slouží jako zástupné symboly pro kontroler ASP.NET MVC a zobrazení migrovaná v další části.
Přidejte adresář Kontrolerů.
Přidejte třídu kontroleru pojmenovanou HomeController.cs
do adresáře Kontrolery.
Přidejte adresář Zobrazení.
Přidejte zobrazení neboHome adresář.
Přidejte zobrazení pojmenované Index.cshtml
Razor do adresáře Views/Homedirectory.
Struktura projektu je znázorněna níže:
Views/Home/Index.cshtml
Obsah souboru nahraďte následujícím kódem:
<h1>Hello world!</h1>
Spustit aplikaci.
Další informace naleznete v tématu Kontrolery a zobrazení.
Následující funkce vyžadují migraci z ukázkového projektu ASP.NET MVC do projektu ASP.NET Core:
obsah na straně klienta (CSS, písma a skripty)
kontrolery
zobrazení
modely
Svazování
Filtry
Přihlaste se/odhlaste ( Identity to se provádí v dalším kurzu.)
Zkopírujte všechny metody z ASP.NET MVC HomeController
do nového HomeController
. V ASP.NET MVC je návratový typ návratové metody akce kontroleru integrované šablony ; ActionResultv ASP.NET Core MVC vrátí metody IActionResult
akcí místo toho. ActionResult
implementuje IActionResult
, takže není nutné měnit návratový typ metod akce.
About.cshtml
Zkopírujte soubor a Contact.cshtml
Index.cshtml
Razor zobrazte soubory z projektu ASP.NET MVC do projektu ASP.NET Core.
Soubor rozložení a styly ještě nebyly migrovány, takže vykreslená zobrazení obsahují pouze obsah v souborech zobrazení. Soubor rozložení vygenerovaný odkazy pro zobrazení About
a Contact
zobrazení ještě nebude k dispozici.
https://localhost:44375/home/about
.Všimněte si chybějícího stylu a položek nabídky. Styly budou opraveny v další části.
V ASP.NET MVC 5 a starších byl statický obsah hostovaný z kořenového adresáře webového projektu a byl intermixován se soubory na straně serveru. V ASP.NET Core je statický obsah hostovaný v adresáři wwwroot . Zkopírujte statický obsah z aplikace ASP.NET MVC do adresáře wwwroot v projektu ASP.NET Core. V tomto ukázkovém převodu:
Projekt ASP.NET MVC používá metodu Bootstrap pro svůj styl a ukládá soubory Bootstrap v adresářích Obsah a Skripty . Šablona, která vygenerovala projekt ASP.NET MVC, odkazuje na Bootstrap v souboru rozložení (Views/Shared/_Layout.cshtml
). Soubory bootstrap.js
a bootstrap.css
soubory lze zkopírovat z projektu ASP.NET MVC do adresáře wwwroot v novém projektu. Místo toho tento dokument přidá podporu pro Bootstrap (a další knihovny na straně klienta) pomocí sítí CDN v další části.
_ViewStart.cshtml
Zkopírujte soubor z adresáře Zobrazení projektu ASP.NET MVC do adresáře Zobrazení projektu ASP.NET Core. V _ViewStart.cshtml
ASP.NET Core MVC se soubor nezměnil.
Vytvořte zobrazení nebo sdílený adresář.
Volitelné: Zkopírujte _ViewImports.cshtml
z adresáře Zobrazení projektu FullAspNetCore MVC do adresáře Zobrazení projektu ASP.NET Core. Odeberte všechny deklarace oboru názvů v _ViewImports.cshtml
souboru. Soubor _ViewImports.cshtml
poskytuje obory názvů pro všechny soubory zobrazení a přináší pomocné rutiny značek. Pomocné rutiny značek se používají v novém souboru rozložení. Soubor _ViewImports.cshtml
je nový pro ASP.NET Core.
_Layout.cshtml
Zkopírujte soubor z adresáře Views/Shared adresáře projektu ASP.NET MVC do adresáře Views/Shared projektu ASP.NET Core.
Otevřete _Layout.cshtml
soubor a proveďte následující změny (dokončený kód je uvedený níže):
Nahraďte @Styles.Render("~/Content/css")
elementem <link>
, který se má načíst bootstrap.css
(viz níže).
Odebrat @Scripts.Render("~/bundles/modernizr")
.
Okomentujte čáru @Html.Partial("_LoginPartial")
(ohraničujte čáru @*...*@
). Další informace najdete v tématu Migrace ověřování a Identity ASP.NET Core
Nahraďte @Scripts.Render("~/bundles/jquery")
elementem <script>
(viz níže).
Nahraďte @Scripts.Render("~/bundles/bootstrap")
elementem <script>
(viz níže).
Náhradní kód pro zahrnutí šablon stylů CSS bootstrap:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
Náhradní kód pro zahrnutí jQuery a Bootstrap JavaScriptu:
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Aktualizovaný _Layout.cshtml
soubor je uvedený níže:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
@*@Html.Partial("_LoginPartial")*@
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Zobrazte web v prohlížeči. Teď by se měl správně načíst s očekávanými styly.
Informace o konfiguraci sdružování a minifikace naleznete v tématu Sdružování a minifikace.
Existuje mnoho problémů, které mohou způsobit chybové zprávy HTTP 500, které neobsahují žádné informace o zdroji problému. Pokud Views/_ViewImports.cshtml
například soubor obsahuje obor názvů, který v projektu neexistuje, vygeneruje se chyba HTTP 500. Ve výchozím nastavení v aplikacích ASP.NET Core UseDeveloperExceptionPage
se rozšíření přidá do IApplicationBuilder
a spustí se při vývoji konfigurace. Podívejte se na příklad v následujícím kódu:
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ASP.NET Core převádí neošetřené výjimky na chybové odpovědi HTTP 500. Za normálních okolností se podrobnosti o chybách do těchto odpovědí nezahrnou, aby se zabránilo zpřístupnění potenciálně citlivých informací o serveru. Další informace najdete na stránce výjimek pro vývojáře.
Zpětná vazba k produktu ASP.NET Core
ASP.NET Core je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Události
Mistrovství Světa v Power BI DataViz
14. 2. 16 - 31. 3. 16
Se 4 šance na vstup, můžete vyhrát konferenční balíček a udělat to na LIVE Grand Finale v Las Vegas
Další informace