ASP.NET mvc 'den ASP.NET Core mvc 'ye geçirme
bu makalede, ASP.NET mvc projesini ASP.NET Core mvc'ye geçirmeye nasıl başlayayapılacağı gösterilmektedir. sürecinde, ASP.NET MVC 'den ilgili değişiklikleri vurgular.
ASP.NET MVC 'den geçiş çok adımlı bir işlemdir. Bu makalede şunları ele alınmaktadır:
- İlk kurulum.
- Temel denetleyiciler ve görünümler.
- Statik içerik.
- İstemci tarafı bağımlılıkları.
yapılandırma ve kodu geçirmek için Identity bkz. yapılandırmayı ASP.NET Core ve geçiş kimlik doğrulaması ve Identity ASP.NET Core geçirme.
Önkoşullar
Visual Studio ve web geliştirme iş yüküyle 2019 16.4 ASP.NET sonraki bir 2019
başlatıcı ASP.NET MVC projesi oluşturma
geçirilecek Visual Studio ASP.NET MVC projesi örneği oluşturun:
- dosya menüsünden yeni > Project' yi seçin.
- ASP.NET Web uygulaması (.NET Framework) öğesini seçin ve ardından ileri' yi seçin.
- ad alanı, bir sonraki adımda oluşturulan ASP.NET Core projesi ile eşleşen proje WebApp1 olarak adlandırın. Oluştur’u seçin.
- MVC' yi ve ardından Oluştur' u seçin.
ASP.NET Core projesi oluşturma
geçirilecek yeni bir ASP.NET Core projesi ile yeni bir çözüm oluşturun:
- İkinci bir Visual Studio örneğini başlatın.
- dosya menüsünden yeni > Project' yi seçin.
- ASP.NET Core Web uygulaması ' nı seçin ve ardından ileri' yi seçin.
- Yeni projenizi yapılandırın iletişim kutusunda projeyi WebApp1 olarak adlandırın.
- Aynı proje adını kullanmak için konumu önceki projeden farklı bir dizine ayarlayın. Aynı ad alanının kullanılması, kodu iki proje arasında kopyalamayı kolaylaştırır. Oluştur’u seçin.
- yeni bir ASP.NET Core Web uygulaması oluştur iletişim kutusunda, .net Core ve ASP.NET Core 3,1 ' un seçili olduğunu doğrulayın. Web uygulaması (Model-View-Controller) proje şablonunu seçin ve Oluştur' u seçin.
ASP.NET Core sitesini MVC kullanacak şekilde yapılandırma
ASP.NET Core 3,0 ve sonraki projelerde .NET Framework artık desteklenen bir hedef çerçeve değildir. Projenizin .NET Core 'ı hedeflemesi gerekir. MVC 'yi içeren ASP.NET Core paylaşılan framework, .net Core çalışma zamanı yüklemesinin bir parçasıdır. Proje dosyasında SDK kullanılırken paylaşılan çerçeveye otomatik olarak başvurulur Microsoft.NET.Sdk.Web :
<Project Sdk="Microsoft.NET.Sdk.Web">
Daha fazla bilgi için bkz. Framework başvurusu.
ASP.NET Core, Startup sınıfı:
- Global. asax öğesini değiştirir.
- Tüm uygulama başlangıç görevlerini işler.
Daha fazla bilgi için bkz. ASP.NET Core 'de uygulama başlatma.
ASP.NET Core projesinde, Startup. cs dosyasını açın:
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 uygulamalar, ara yazılım ile framework özelliklerini kabul etmelidir. Şablon tarafından oluşturulan önceki kod, aşağıdaki hizmetleri ve ara yazılımı ekler:
- AddControllersWithViewsGenişletme yöntemi denetleyiciler, API ile ilgili özellikler ve görünümler IÇIN MVC hizmeti desteğini kaydeder. MVC hizmeti kayıt seçenekleri hakkında daha fazla bilgi için bkz. MVC hizmeti kaydı
- UseStaticFilesGenişletme yöntemi statik dosya işleyicisini ekler
Microsoft.AspNetCore.StaticFiles.UseStaticFilesUzantı yönteminin önce çağrılması gerekirUseRouting. Daha fazla bilgi için bkz. ASP.NET Core'daki statik dosyalar. - UseRoutingUzantı yöntemi yönlendirme ekler. Daha fazla bilgi için bkz. ASP.NET Core'de yönlendirme.
bu mevcut yapılandırma, örnek ASP.NET MVC projesini geçirmek için gerekenleri içerir. ASP.NET Core ara yazılım seçenekleri hakkında daha fazla bilgi için bkz ASP.NET Core 'de uygulama başlatma ..
Denetleyicileri ve görünümleri geçirme
ASP.NET Core projesinde, yeni boş bir denetleyici sınıfı ve görünüm sınıfı, geçiş için herhangi bir ASP.NET MVC projesindeki denetleyici ve görünüm sınıflarıyla aynı adları kullanarak yer tutucu olarak sunulacak şekilde eklenir.
ASP.NET Core WebApp1 projesi zaten minimal bir örnek denetleyici içeriyor ve ASP.NET MVC projesiyle aynı ada sahip bir görünüm içeriyor. bu nedenle bunlar, ASP.NET mvc WebApp1 projesinden geçirilecek ASP.NET MVC denetleyicisi ve görünümleri için yer tutucu olarak görev yapar.
HomeControlleryeni ASP.NET Core yöntemlerini değiştirmek için ASP.NET MVC 'den yöntemleri kopyalayınHomeController. Eylem yöntemlerinin dönüş türünü değiştirmeniz gerekmez. ASP.NET MVC yerleşik şablonun denetleyici eylem yöntemi dönüş türü ActionResult ; ASP.NET Core mvc 'de eylem metotlarıIActionResultbunun yerine döndürülür.ActionResultuygularIActionResult.- ASP.NET Core projesinde, görünümlere Home / dizine sağ tıklayın, > varolan öğe ekle ' yi seçin.
- varolan öğe ekle iletişim kutusunda ASP.NET MVC WebApp1 projesinin Home görünümlerine/ dizinine gidin.
- Hakkında. cshtml, Contact. cshtml ve Index. cshtml Razor Görünüm dosyalarını seçin ve ardından Ekle' yi seçerek var olan dosyaları değiştirin.
Daha fazla bilgi için ASP.NET Core MVC 'de denetleyicilerle istekleri işleme ve ASP.NET Core MVC 'deki görünümler bölümlerine bakın.
Her yöntemi test et
Her denetleyici uç noktası test edilebilir, ancak düzen ve stiller belgede daha sonra ele alınmıştır.
- ASP.NET Core uygulamasını çalıştırın.
- geçerli bağlantı noktası numarasını ASP.NET Core projesinde kullanılan bağlantı noktası numarasıyla değiştirerek, çalışan ASP.NET Core uygulamasındaki tarayıcıdan işlenen görünümleri çağırın. Örneğin,
https://localhost:44375/home/about.
Statik içeriği geçirme
ASP.NET MVC 5 ve önceki sürümlerde, statik içerik web projesinin kök dizininden barındırılıyor ve sunucu tarafı dosyalarıyla karıştı. ASP.NET Core, statik dosyalar projenin web kök dizininde saklanır. Varsayılan dizin {Content root}/Wwwroot, ancak değiştirilebilir. Daha fazla bilgi için ASP.NET Core Içindeki statik dosyalarbölümüne bakın.
ASP.NET MVC WebApp1 projesinden statik içeriği ASP.NET Core WebApp1 projesindeki wwwroot dizinine kopyalayın:
- ASP.NET Core projesinde, wwwroot dizinine sağ tıklayın, > varolan öğe ekle ' yi seçin.
- varolan öğe ekle iletişim kutusunda ASP.NET MVC WebApp1 projesine gidin.
- Tercih simgesi. ico dosyasını seçin ve ardından Ekle' yi seçerek var olan dosyayı değiştirin.
Düzen dosyalarını geçirme
ASP.NET MVC proje düzeni dosyalarını ASP.NET Core projesine kopyalayın:
- ASP.NET Core projesinde, görünümler dizinine sağ tıklayın, > varolan öğe ekle ' yi seçin.
- varolan öğe ekle iletişim kutusunda ASP.NET MVC WebApp1 projesinin görünümler dizinine gidin.
- _ViewStart. cshtml dosyasını seçin ve ardından Ekle' yi seçin.
ASP.NET MVC proje paylaşılan düzen dosyalarını ASP.NET Core projesine kopyalayın:
- ASP.NET Core projesinde, görünümler/paylaşılan dizine sağ tıklayın, > varolan öğe ekle ' yi seçin.
- varolan öğe ekle iletişim kutusunda ASP.NET MVC WebApp1 projesinin görünümler/paylaşılan dizinine gidin.
- _Layout. cshtml dosyasını seçin ve ardından Ekle' yi seçerek var olan dosyayı değiştirin.
ASP.NET Core projesinde, _Layout. cshtml dosyasını açın. Aşağıda gösterilen tamamlanan kodla eşleştirmek için aşağıdaki değişiklikleri yapın:
Önyükleme CSS 'sini aşağıdaki tamamlanan kodla eşleşecek şekilde güncelleştirin:
@Styles.Render("~/Content/css")<link>Bootstrap. css ' nin yükleneceği bir öğeyle değiştirin (aşağıya bakın).- Kaldırın
@Scripts.Render("~/bundles/modernizr").
Önyükleme CSS ekleme için tamamlanan değiştirme biçimlendirmesi:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
JQuery ve Bootstrap JavaScript 'ı aşağıdaki tamamlanan kodla eşleşecek şekilde güncelleştirin:
@Scripts.Render("~/bundles/jquery")Bir öğesiyle değiştirin<script>(aşağıya bakın).@Scripts.Render("~/bundles/bootstrap")Bir öğesiyle değiştirin<script>(aşağıya bakın).
JQuery ve Bootstrap JavaScript ekleme için tamamlanan değiştirme biçimlendirmesi:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Güncelleştirilmiş _Layout. cshtml dosyası aşağıda gösterilmiştir:
<!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.min.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.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Siteyi tarayıcıda görüntüleyin. Beklenen stillerle işleyicinin yerinde olması gerekir.
Gruplama ve minimumlaştırmayı yapılandırma
ASP.NET Core, WebOptimizer ve diğer benzer kitaplıklar gibi çeşitli açık kaynak modelleme ve minification çözümleriyle uyumludur. ASP.NET Core, yerel bir modelleme ve minification çözümü sağlamaz. Bundling ve minification yapılandırma hakkında bilgi için bkz. Bundling ve Minification.
HTTP 500 hatalarını çözme
Sorunun kaynağı hakkında bilgi içeren bir HTTP 500 hata iletisine neden olan birçok sorun vardır. Örneğin Views/_ViewImports.cshtml dosyası projede mevcut olmayan bir ad alanı içeriyorsa HTTP 500 hatası oluşturulur. Varsayılan olarak ASP.NET Core, uzantısı uygulamasına eklenir ve ortam Geliştirme UseDeveloperExceptionPage IApplicationBuilder olduğunda yürütülür. Bu, aşağıdaki kodda ayrıntılı olarak açıktır:
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 özel durumları HTTP 500 hata yanıtlarına dönüştürür. Normalde, sunucuyla ilgili hassas olabilecek bilgilerin açıklanmasına engel olmak için hata ayrıntıları bu yanıtlara dahil değildir. Daha fazla bilgi için bkz. Geliştirici Özel Durum Sayfası.
Sonraki adımlar
Ek kaynaklar
Bu makalede, bir MVC projesini MVC 2.2'ASP.NET ASP.NET Core nasıl başlayacağınız açıklanmıştır. İşlemde, MVC'den farklı olarak değişen birçok şeyi ASP.NET vurgular. MVC'den ASP.NET çok adımlı bir işlemdir. Bu makale şunları kapsar:
- İlk kurulum
- Temel denetleyiciler ve görünümler
- Statik içerik
- İstemci tarafı bağımlılıkları.
Yapılandırmayı ve kodun nasıl olduğunu Identity görmek için bkz. Yapılandırmayı ASP.NET Core geçir ve Kimlik Doğrulamasını ve Identity ASP.NET Core .
Not
Örneklerde sürüm numaraları güncel değildir, projeleri uygun şekilde güncelleştirin.
MVC projesi ASP.NET oluşturma
Yükseltmeyi göstermek için MVC uygulaması oluşturmak ASP.NET başlayacağız. Ad alanının bir sonraki adımda oluşturulan projeyle eşleşmesi için WebApp1 ASP.NET Core oluşturun.


İsteğe bağlı: Çözümün adını WebApp1 olarak Mvc5 olarak değiştirme. Visual Studio yeni çözüm adını (Mvc5) görüntüler ve bu da bu projeyi bir sonraki projeden daha kolay bir şekilde anlatmayı kolaylaştırır.
ASP.NET Core oluşturma
İki projede ad ASP.NET Core önceki projeyle aynı adla (WebApp1) yeni bir boş web uygulaması oluşturun. Aynı ad alanına sahip olmak, iki proje arasında kod kopyalamayı kolaylaştırır. Aynı adı kullanmak için bu projeyi önceki projeden farklı bir dizinde oluşturun.


- İsteğe bağlı: Web Uygulaması ASP.NET Core kullanarak yeni bir uygulama oluşturun. Projeyi WebApp1 olarak adlandırarak Bireysel Kullanıcı Hesapları kimlik doğrulaması seçeneğini belirleyin. Bu uygulamayı FullAspNetCore olarak yeniden adlandırabilirsiniz. Bu projenin oluşturulması, dönüştürmede zamandan tasarruf sağlar. Son sonuç şablon tarafından oluşturulan kodda görüntüleme, kod dönüştürme projesine kopyalanamaz veya şablon tarafından oluşturulan projeyle karşılaştırabilirsiniz.
Siteyi MVC'yi kullanmak üzere yapılandırma
- .NET Core'a hedef Microsoft.AspNetCore.App meta veri paketine varsayılan olarak başvurdu. Bu paket, MVC uygulamaları tarafından yaygın olarak kullanılan paketleri içerir. Hedef .NET Framework, paket başvuruları proje dosyasında tek tek listelenmiş olması gerekir.
Microsoft.AspNetCore.Mvc, ASP.NET Core MVC çerçevesidir. Microsoft.AspNetCore.StaticFiles , statik dosya işleyicisidir. ASP.NET Core uygulamaları, örneğin statik dosyaları sunan ara yazılımı açıkça kabul edin. Daha fazla bilgi için bkz. Statik dosyalar.
- Startup.cs dosyasını açın ve kodu aşağıdakiyle eş olacak şekilde değiştirebilirsiniz:
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?}");
});
}
}
Genişletme UseStaticFiles yöntemi statik dosya işleyicisini ekler. Daha fazla bilgi için bkz. Uygulama Başlatma ve Yönlendirme.
Denetleyici ve görünüm ekleme
Bu bölümde, bir sonraki bölümde geçirilen MVC denetleyicisi ve görünümler için ASP.NET bir denetleyici ve görünüm eklenmiştir.
Denetleyiciler dizini ekleyin.
Controllers dizinine Home Controller.cs adlı bir Denetleyici Sınıfı ekleyin.

Görünümler dizini ekleyin.
Bir Views/ Home dizini ekleyin.
Home Views/ Razor dizinine Index.cshtml adlı bir Görünüm ekleyin.

Proje yapısı aşağıda gösterilmiştir:

Views/ Home /Index.cshtml dosyasının içeriğini aşağıdaki işaretlemeyle değiştirin:
<h1>Hello world!</h1>
Uygulamayı çalıştırın.

Daha fazla bilgi için bkz. Denetleyiciler ve Görünümler.
Aşağıdaki işlevsellik, örnek MVC projesinden ASP.NET projesine ASP.NET Core gerektirir:
istemci tarafı içerik (CSS, yazı tipleri ve betikler)
denetleyiciler
görünümler
modeller
bundling (bundling)
filtreler
Oturum açma/oturumu açma Identity (Bu işlem sonraki öğreticide yapılır.)
Denetleyiciler ve görünümler
MVC'den gelen yöntemlerin her ASP.NET
HomeControlleryeni 'yeHomeControllerkopyalayın. MVC ASP.NET de yerleşik şablonun denetleyici eylem yöntemi dönüş türü ActionResult şudur: MVC'de ASP.NET Core yöntemleri bunun yerineIActionResultgeri döner.ActionResult,IActionResultbu nedenle eylem yöntemlerinin dönüş türünü değiştirmeye gerek yoktur.ASP.NET MVC projesinden About.cshtml, Contact.cshtml ve Index.cshtml görünüm dosyalarını ASP.NET Core Razor kopyalayın.
Her yöntemi test etmek
Düzen dosyası ve stilleri henüz geçirilmez, bu nedenle işlenmiş görünümler yalnızca görünüm dosyalarında içeriği içerir. ve görünümleri için oluşturulan düzen About Contact dosyası henüz kullanılamıyor.
Geçerli bağlantı noktası numarasını ASP.NET çekirdek projesinde kullanılan bağlantı noktası numarasıyla değiştirerek çalışan ASP.NET tarayıcıdan işlenen görünümleri çağırma. Örneğin: https://localhost:44375/home/about.

Stil ve menü öğelerinin eksik olduğunu unutmayın. Stil bir sonraki bölümde düzeltilecek.
Statik içerik
MVC 5 ASP.NET önceki sürümlerde statik içerik web projesinin kökünden barındırıldı ve sunucu tarafı dosyalarıyla kesişti. Bu ASP.NET Core, statik içerik wwwroot dizininde barındırıldı. MVC uygulamasındaki statik ASP.NET projesinde wwwroot dizinine ASP.NET Core kopyalayın. Bu örnek dönüştürmede:
- ASP.NET MVC projesinden favicon.ico dosyasını ASP.NET Core projesinde wwwroot dizinine kopyalayın.
MVC ASP.NET, stili için Bootstrap kullanır ve Bootstrap dosyalarını İçerik ve Betik dizinlerine depolar. ASP.NET MVC projesini oluşturan şablon, düzen dosyasında (Views/Shared/_Layout.cshtml) Bootstrap'e başvurur. bootstrap.js ve bootstrap.css dosyaları, ASP.NET MVC projesinde yeni projesinde wwwroot dizinine kopyalanır. Bunun yerine, bu belge sonraki bölümde CDN'leri kullanarak Bootstrap (ve diğer istemci tarafı kitaplıkları) için destek ekler.
Düzen dosyasını geçirme
ASP.NET MVC projesinin Views dizininden _ViewStart.cshtml dosyasını ASP.NET Core projesinin Views dizinine kopyalayın. _ViewStart.cshtml dosyası MVC'de ASP.NET Core değişmemiştir.
Görünümler/Paylaşılan dizin oluşturun.
İsteğe bağlı: FullAspNetCore MVC projesinin Views dizininden _ViewImports.cshtml dosyasını ASP.NET Core projenin Views dizinine kopyalayın. _ViewImports.cshtml dosyasındaki tüm ad alanı bildirimlerini kaldırın. _ViewImports.cshtml dosyası tüm görünüm dosyaları için ad alanları sağlar ve Etiket Yardımcılarını getirir. Etiket Yardımcıları yeni düzen dosyasında kullanılır. _ViewImports.cshtml dosyası, ASP.NET Core.
ASP.NET MVC projesinin Views/Shared dizininden _Layout.cshtml dosyasını ASP.NET Core projesinin Views/Shared dizinine kopyalayın.
_Layout.cshtml dosyasını açın ve aşağıdaki değişiklikleri yapın (tamamlanan kod aşağıda gösterilmiştir):
öğesini
@Styles.Render("~/Content/css")<link>bootstrap.css yüklemek için bir öğesiyle değiştirin (aşağıya bakın).'ı
@Scripts.Render("~/bundles/modernizr")kaldırın.Satırı açıklama
@Html.Partial("_LoginPartial")satırı yap (satırı ile çevreler).@*...*@Daha fazla bilgi için bkz. Kimlik Doğrulamayı Geçirme Identity ve ASP.NET Coreöğesini
@Scripts.Render("~/bundles/jquery")bir<script>öğesiyle değiştirin (aşağıya bakın).öğesini
@Scripts.Render("~/bundles/bootstrap")bir<script>öğesiyle değiştirin (aşağıya bakın).
Bootstrap CSS dahil etme için değiştirme işaretlemesi:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
jQuery ve Bootstrap JavaScript içermesi için değiştirme işaretlemesi:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Güncelleştirilmiş _Layout.cshtml dosyası aşağıda gösterilmiştir:
<!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.min.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.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Siteyi tarayıcıda görüntüleyebilirsiniz. Şimdi beklenen stiller yerinde olacak şekilde doğru şekilde yüklenmeli.
- İsteğe bağlı: Yeni düzen dosyasını kullanmayı deneyin. FullAspNetCore projesinden düzen dosyasını kopyalayın. Yeni düzen dosyası Etiket Yardımcılarını kullanır ve başka geliştirmeleri vardır.
Gruplama ve minimumlaştırmayı yapılandırma
Gruplama ve minimumlaştırmayı yapılandırma hakkında bilgi için bkz. Gruplama ve Minification.
HTTP 500 hatalarını çözme
Sorunun kaynağı hakkında bilgi içeren http 500 hata iletilerine neden olan birçok sorun vardır. Örneğin Views/_ViewImports.cshtml dosyasında projede mevcut olmayan bir ad alanı varsa HTTP 500 hatası oluşturulur. Varsayılan olarak ASP.NET Core, uzantısı uygulamasına eklenir ve yapılandırma Geliştirme UseDeveloperExceptionPage IApplicationBuilder olduğunda yürütülür. Aşağıdaki kodda bir örnek bakın:
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 özel durumları HTTP 500 hata yanıtlarına dönüştürür. Normalde, sunucuyla ilgili hassas olabilecek bilgilerin açıklanmasına engel olmak için hata ayrıntıları bu yanıtlara dahil değildir. Daha fazla bilgi için bkz. Geliştirici Özel Durum Sayfası.
Ek kaynaklar
Bu makalede, bir MVC projesini MVC 2.1'ASP.NET e ASP.NET Core nasıl başlayacağınız açıklanmıştır. Bu işlemde, MVC'den gelen birçok değişiklik ASP.NET vurgulanır. MVC'den ASP.NET çok adımlı bir işlemdir. Bu makale şunları kapsar:
- İlk kurulum
- Temel denetleyiciler ve görünümler
- Statik içerik
- İstemci tarafı bağımlılıkları.
Yapılandırmayı ve kodu geçirmek için bkz. Yapılandırmayı ASP.NET Core'a geçirme ve Kimlik Identity Doğrulamayı Identity ASP.NET Core.
Not
Örneklerde sürüm numaraları güncel değildir, projeleri uygun şekilde güncelleştirin.
MVC projesi ASP.NET oluşturma
Yükseltmeyi göstermek için ilk olarak bir MVC uygulaması ASP.NET oluşturuz. Ad alanının bir sonraki adımda oluşturulan projeyle eşleşmesi için WebApp1 ASP.NET Core oluşturun.


İsteğe bağlı: Çözümün adını WebApp1 olarak Mvc5 olarak değiştirme. Visual Studio yeni çözüm adını (Mvc5) görüntüler ve bu da bu projeyi bir sonraki projeden daha kolay bir şekilde anlatmayı kolaylaştırır.
ASP.NET Core oluşturma
İki projede ad ASP.NET Core önceki projeyle aynı adla (WebApp1) yeni bir boş web uygulaması oluşturun. Aynı ad alanına sahip olmak, iki proje arasında kod kopyalamayı kolaylaştırır. Aynı adı kullanmak için bu projeyi önceki projeden farklı bir dizinde oluşturun.


- İsteğe bağlı: Web Uygulaması ASP.NET Core kullanarak yeni bir uygulama oluşturun. Projeyi WebApp1 olarak adlandırarak Bireysel Kullanıcı Hesapları kimlik doğrulaması seçeneğini belirleyin. Bu uygulamayı FullAspNetCore olarak yeniden adlandırabilirsiniz. Bu projenin oluşturulması, dönüştürmede zamandan tasarruf sağlar. Son sonuç şablon tarafından oluşturulan kodda görüntüleme, kod dönüştürme projesine kopyalanamaz veya şablon tarafından oluşturulan projeyle karşılaştırabilirsiniz.
Siteyi MVC'yi kullanmak üzere yapılandırma
- .NET Core'a hedef Microsoft.AspNetCore.App meta veri paketine varsayılan olarak başvurdu. Bu paket, MVC uygulamaları tarafından yaygın olarak kullanılan paketleri içerir. Hedef .NET Framework, paket başvuruları proje dosyasında tek tek listelenmiş olması gerekir.
Microsoft.AspNetCore.Mvc, ASP.NET Core MVC çerçevesidir. Microsoft.AspNetCore.StaticFiles , statik dosya işleyicisidir. ASP.NET Core uygulamaları, örneğin statik dosyaları sunan ara yazılımı açıkça kabul edin. Daha fazla bilgi için bkz. Statik dosyalar.
- Startup.cs dosyasını açın ve kodu aşağıdakiyle eş olacak şekilde değiştirebilirsiniz:
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?}");
});
}
}
Genişletme UseStaticFiles yöntemi statik dosya işleyicisini ekler. Genişletme UseMvc yöntemi yönlendirme ekler. Daha fazla bilgi için bkz. Uygulama Başlatma ve Yönlendirme.
Denetleyici ve görünüm ekleme
Bu bölümde, bir sonraki bölümde geçirilen MVC denetleyicisi ve görünümler için ASP.NET bir denetleyici ve görünüm eklenmiştir.
Denetleyiciler dizini ekleyin.
Controllers dizinine Home Controller.cs adlı bir Denetleyici Sınıfı ekleyin.

Görünümler dizini ekleyin.
Bir Views/ Home dizini ekleyin.
Home Views/ Razor dizinine Index.cshtml adlı bir Görünüm ekleyin.

Proje yapısı aşağıda gösterilmiştir:

Views/ Home /Index.cshtml dosyasının içeriğini aşağıdaki işaretlemeyle değiştirin:
<h1>Hello world!</h1>
Uygulamayı çalıştırın.

Daha fazla bilgi için bkz. Denetleyiciler ve Görünümler.
Aşağıdaki işlevsellik, örnek MVC projesinden ASP.NET projesine ASP.NET Core gerektirir:
istemci tarafı içerik (CSS, yazı tipleri ve betikler)
denetleyiciler
görünümler
modeller
bundling (bundling)
filtreler
Oturum açma/oturumu açma Identity (Bu işlem sonraki öğreticide yapılır.)
Denetleyiciler ve görünümler
MVC'den gelen yöntemlerin her ASP.NET
HomeControlleryeni 'yeHomeControllerkopyalayın. MVC ASP.NET de yerleşik şablonun denetleyici eylem yöntemi dönüş türü ActionResult şudur: MVC'de ASP.NET Core yöntemleri bunun yerineIActionResultgeri döner.ActionResult,IActionResultbu nedenle eylem yöntemlerinin dönüş türünü değiştirmeye gerek yoktur.ASP.NET MVC projesinden About.cshtml, Contact.cshtml ve Index.cshtml görünüm dosyalarını ASP.NET Core Razor kopyalayın.
Her yöntemi test etmek
Düzen dosyası ve stilleri henüz geçirilmez, bu nedenle işlenmiş görünümler yalnızca görünüm dosyalarında içeriği içerir. ve görünümleri için oluşturulan düzen About Contact dosyası henüz kullanılamıyor.
- Geçerli bağlantı noktası numarasını ASP.NET çekirdek projesinde kullanılan bağlantı noktası numarasıyla değiştirerek çalışan ASP.NET tarayıcıdan işlenen görünümleri çağırma. Örneğin:
https://localhost:44375/home/about.

Stil ve menü öğelerinin eksik olduğunu unutmayın. Stil bir sonraki bölümde düzeltilecek.
Statik içerik
MVC 5 ASP.NET önceki sürümlerde statik içerik web projesinin kökünden barındırıldı ve sunucu tarafı dosyalarıyla kesişti. Bu ASP.NET Core, statik içerik wwwroot dizininde barındırıldı. MVC uygulamasındaki statik ASP.NET projesinde wwwroot dizinine ASP.NET Core kopyalayın. Bu örnek dönüştürmede:
- ASP.NET MVC projesinden favicon.ico dosyasını ASP.NET Core projesinde wwwroot dizinine kopyalayın.
MVC ASP.NET, stili için Bootstrap kullanır ve Bootstrap dosyalarını İçerik ve Betik dizinlerine depolar. ASP.NET MVC projesini oluşturan şablon, düzen dosyasında (Views/Shared/_Layout.cshtml) Bootstrap'e başvurur. bootstrap.js ve bootstrap.css dosyaları, ASP.NET MVC projesinde yeni projesinde wwwroot dizinine kopyalanır. Bunun yerine, bu belge sonraki bölümde CDN'leri kullanarak Bootstrap (ve diğer istemci tarafı kitaplıkları) için destek ekler.
Düzen dosyasını geçirme
ASP.NET MVC projesinin Views dizininden _ViewStart.cshtml dosyasını ASP.NET Core projesinin Views dizinine kopyalayın. _ViewStart.cshtml dosyası MVC'de ASP.NET Core değişmemiştir.
Görünümler/Paylaşılan dizin oluşturun.
İsteğe bağlı: FullAspNetCore MVC projesinin Views dizininden _ViewImports.cshtml dosyasını ASP.NET Core projenin Views dizinine kopyalayın. _ViewImports.cshtml dosyasındaki ad alanı bildirimlerini kaldırın. _ViewImports.cshtml dosyası tüm görünüm dosyaları için ad alanları sağlar ve Etiket Yardımcılarını getirir. Etiket Yardımcıları yeni düzen dosyasında kullanılır. _ViewImports.cshtml dosyası, ASP.NET Core.
ASP.NET MVC projesinin Views/Shared dizininden _Layout.cshtml dosyasını ASP.NET Core projesinin Views/Shared dizinine kopyalayın.
_Layout.cshtml dosyasını açın ve aşağıdaki değişiklikleri yapın (tamamlanan kod aşağıda gösterilmiştir):
öğesini
@Styles.Render("~/Content/css")<link>bootstrap.css yüklemek için bir öğesiyle değiştirin (aşağıya bakın).'ı
@Scripts.Render("~/bundles/modernizr")kaldırın.Satırı açıklama
@Html.Partial("_LoginPartial")satırı yap (satırı ile çevreler).@*...*@Daha fazla bilgi için bkz. Kimlik Doğrulamayı Geçirme Identity ve ASP.NET Coreöğesini
@Scripts.Render("~/bundles/jquery")bir<script>öğesiyle değiştirin (aşağıya bakın).öğesini
@Scripts.Render("~/bundles/bootstrap")bir<script>öğesiyle değiştirin (aşağıya bakın).
Bootstrap CSS dahil etme için değiştirme işaretlemesi:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
jQuery ve Bootstrap JavaScript içermesi için değiştirme işaretlemesi:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Güncelleştirilmiş _Layout.cshtml dosyası aşağıda gösterilmiştir:
<!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.min.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.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
@RenderSection("scripts", required: false)
</body>
</html>
Siteyi tarayıcıda görüntüleyebilirsiniz. Şimdi beklenen stiller yerinde olacak şekilde doğru şekilde yüklenmeli.
- İsteğe bağlı: Yeni düzen dosyasını kullanmayı deneyin. FullAspNetCore projesinden düzen dosyasını kopyalayın. Yeni düzen dosyası Etiket Yardımcılarını kullanır ve başka geliştirmeleri vardır.
Gruplama ve minimumlaştırmayı yapılandırma
Gruplama ve minimumlaştırmayı yapılandırma hakkında bilgi için bkz. Gruplama ve Minification.
HTTP 500 hatalarını çözme
Sorunun kaynağı hakkında bilgi içeren http 500 hata iletilerine neden olan birçok sorun vardır. Örneğin Views/_ViewImports.cshtml dosyasında projede mevcut olmayan bir ad alanı varsa HTTP 500 hatası oluşturulur. Varsayılan olarak ASP.NET Core, uzantısı UseDeveloperExceptionPage uygulamasına eklenir ve yapılandırma Geliştirme IApplicationBuilder olduğunda yürütülür. Aşağıdaki kodda bir örnek bakın:
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 özel durumları HTTP 500 hata yanıtlarına dönüştürür. Normalde, sunucuyla ilgili hassas olabilecek bilgilerin açıklanmasına engel olmak için hata ayrıntıları bu yanıtlara dahil değildir. Daha fazla bilgi için bkz. Geliştirici Özel Durum Sayfası.