Bölüm 2, ASP.NET Core MVC uygulamasına denetleyici ekleme
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
Gönderen Rick Anderson
Model-View-Controller (MVC) mimari deseni bir uygulamayı üç ana bileşene ayırır: Model, View ve Controller. MVC düzeni, geleneksel monolitik uygulamalara göre daha test edilebilir ve güncelleştirilebilir uygulamalar oluşturmanıza yardımcı olur.
MVC tabanlı uygulamalar:
- Models: Uygulamanın verilerini temsil eden sınıflar. Model sınıfları, bu veriler için iş kurallarını zorunlu kılmak için doğrulama mantığını kullanır. Model nesneleri genellikle bir veritabanında model durumunu alır ve depolar. Bu öğreticide, model
Movie
bir veritabanından film verilerini alır, görünüme sağlar veya güncelleştirir. Güncelleştirilmiş veriler bir veritabanına yazılır. - Views: Görünümler, uygulamanın kullanıcı arabirimini (UI) görüntüleyen bileşenlerdir. Genellikle bu kullanıcı arabirimi model verilerini görüntüler.
- Controllers: Şu sınıflar:
- Tarayıcı isteklerini işleyin.
- Model verilerini alma.
- Yanıt döndüren çağrı görünümü şablonları.
MVC uygulamasında görünüm yalnızca bilgileri görüntüler. Denetleyici, kullanıcı girişini ve etkileşimini işler ve yanıtlar. Örneğin, denetleyici URL kesimlerini ve sorgu dizesi değerlerini işler ve bu değerleri modele geçirir. Model, veritabanını sorgulamak için bu değerleri kullanabilir. Örneğin:
https://localhost:5001/Home/Privacy
: denetleyiciyiHome
vePrivacy
eylemi belirtir.https://localhost:5001/Movies/Edit/5
: denetleyiciyi ve eylemi kullanarakMovies
id=5 ile filmi düzenleme isteğidir veEdit
öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
MVC mimari deseni, bir uygulamayı üç ana bileşen grubuna ayırır: Modeller, Görünümler ve Denetleyiciler. Bu düzen, endişelerin ayrılmasına yardımcı olur: Kullanıcı arabirimi mantığı görünüme aittir. Giriş mantığı denetleyiciye aittir. İş mantığı modele aittir. Bu ayrım, bir uygulama oluştururken karmaşıklığın yönetilmesine yardımcı olur çünkü uygulamanın bir yönü üzerinde bir kerede başka bir uygulamanın kodunu etkilemeden çalışmaya olanak tanır. Örneğin, iş mantığı koduna bağlı olmadan görünüm kodu üzerinde çalışabilirsiniz.
Bu kavramlar, bir film uygulaması oluşturulurken bu öğretici serisinde tanıtılır ve gösterilir. MVC projesi, Denetleyiciler ve Görünümler için klasörler içerir.
Denetleyici ekleme
Çözüm Gezgini'da Denetleyiciler > Denetleyici Ekle'ye > sağ tıklayın.
Yeni İskeleli Öğe Ekle iletişim kutusunda MVC Denetleyicisi - Boş>Ekle'yi seçin.
Yeni Öğe Ekle - MvcMovie iletişim kutusunda, girin HelloWorldController.cs
ve Ekle'yi seçin.
öğesinin içeriğini Controllers/HelloWorldController.cs
aşağıdaki kodla değiştirin:
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers;
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
Bir denetleyicideki her public
yöntem HTTP uç noktası olarak çağrılabilir. Yukarıdaki örnekte, her iki yöntem de bir dize döndürür. Her yöntemden önceki açıklamaları not edin.
HTTP uç noktası:
- Gibi web uygulamasında
https://localhost:5001/HelloWorld
hedeflenebilir bir URL'dir. - Birleştiren:
- Kullanılan protokol:
HTTPS
. - TCP bağlantı noktası da dahil olmak üzere web sunucusunun ağ konumu:
localhost:5001
. - Hedef URI:
HelloWorld
.
- Kullanılan protokol:
İlk açıklama bunun temel URL'ye eklenerek /HelloWorld/
çağrılan bir HTTP GET yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek /HelloWorld/Welcome/
çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, verileri güncelleştiren yöntemler oluşturmak HTTP POST
için iskele altyapısı kullanılır.
Ctrl+F5 (Windows) veya ⌘+F5 (macOS) tuşlarına basarak uygulamayı hata ayıklayıcı olmadan çalıştırın.
Adres çubuğundaki yola ekleyin /HelloWorld
. Index
yöntemi bir dize döndürür.
MVC, gelen URL'ye bağlı olarak denetleyici sınıflarını ve bunların içindeki eylem yöntemlerini çağırır. MVC tarafından kullanılan varsayılan URL yönlendirme mantığı , hangi kodun çağrıldığını belirlemek için aşağıdakine benzer bir biçim kullanır:
/[Controller]/[ActionName]/[Parameters]
Yönlendirme biçimi dosyada Program.cs
ayarlanır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Uygulamaya göz attığınızda ve herhangi bir URL kesimi sağlamadığınızda, varsayılan olarak "Home" denetleyicisi ve yukarıda vurgulanan şablon satırında belirtilen "Dizin" yöntemi kullanılır. Önceki URL segmentlerinde:
- İlk URL kesimi, çalıştırılacak denetleyici sınıfını belirler. Bu nedenle
localhost:5001/HelloWorld
HelloWorld Controller sınıfına eşler. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
, sınıfının yöntemininHelloWorldController
çalıştırılmasına neden olurIndex
. Yalnızca adresine göz atmaklocalhost:5001/HelloWorld
zorunda kaldığınıza ve yöntemin varsayılan olarak çağrıldığınaIndex
dikkat edin.Index
, bir yöntem adı açıkça belirtilmezse denetleyicide çağrılacak varsayılan yöntemdir. - URL kesiminin (
id
) üçüncü bölümü yol verileri içindir. Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
Welcome
ve eylem yöntemidir. URL'nin bölümünü henüz kullanmadınız [Parameters]
.
URL'den denetleyiciye bazı parametre bilgilerini geçirmek için kodu değiştirin. Örneğin, /HelloWorld/Welcome?name=Rick&numtimes=4
.
Welcome
yöntemini, aşağıdaki kodda gösterildiği gibi iki parametre içerecek şekilde değiştirin.
// GET: /HelloWorld/Welcome/
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
Yukarıdaki kod:
- Bu parametre için hiçbir değer geçirilmediyse parametrenin
numTimes
varsayılan olarak 1 olduğunu belirtmek için C# isteğe bağlı-parametre özelliğini kullanır. - Uygulamayı JavaScript gibi kötü amaçlı girişlere karşı korumak için kullanır
HtmlEncoder.Default.Encode
. - içinde
$"Hello {name}, NumTimes is: {numTimes}"
İlişkili Dizeleri kullanır.
Uygulamayı çalıştırın ve adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
URL'de ve numtimes
için name
farklı değerler deneyin. MVC model bağlama sistemi, adlandırılmış parametreleri sorgu dizesinden yöntemindeki parametrelere otomatik olarak eşler. Daha fazla bilgi için bkz . Model Bağlama .
Önceki resimde:
- URL kesimi
Parameters
kullanılmaz. name
venumTimes
parametreleri sorgu dizesinde geçirilir.?
Yukarıdaki URL'deki (soru işareti) bir ayırıcıdır ve sorgu dizesi aşağıdaki gibidir.- Karakter,
&
alan-değer çiftlerini ayırır.
Welcome
yöntemini aşağıdaki kod ile değiştirin:
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
Uygulamayı çalıştırın ve aşağıdaki URL'yi girin: https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
Yukarıdaki URL'de:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
sorgu dizesini başlatır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Yukarıdaki örnekte:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
Model-View-Controller (MVC) mimari deseni bir uygulamayı üç ana bileşene ayırır: Model, View ve Controller. MVC düzeni, geleneksel monolitik uygulamalara göre daha test edilebilir ve güncelleştirilebilir uygulamalar oluşturmanıza yardımcı olur.
MVC tabanlı uygulamalar:
- Models: Uygulamanın verilerini temsil eden sınıflar. Model sınıfları, bu veriler için iş kurallarını zorunlu kılmak için doğrulama mantığını kullanır. Model nesneleri genellikle bir veritabanında model durumunu alır ve depolar. Bu öğreticide, model
Movie
bir veritabanından film verilerini alır, görünüme sağlar veya güncelleştirir. Güncelleştirilmiş veriler bir veritabanına yazılır. - Views: Görünümler, uygulamanın kullanıcı arabirimini (UI) görüntüleyen bileşenlerdir. Genellikle bu kullanıcı arabirimi model verilerini görüntüler.
- Controllers: Şu sınıflar:
- Tarayıcı isteklerini işleyin.
- Model verilerini alma.
- Yanıt döndüren çağrı görünümü şablonları.
MVC uygulamasında görünüm yalnızca bilgileri görüntüler. Denetleyici, kullanıcı girişini ve etkileşimini işler ve yanıtlar. Örneğin, denetleyici URL kesimlerini ve sorgu dizesi değerlerini işler ve bu değerleri modele geçirir. Model, veritabanını sorgulamak için bu değerleri kullanabilir. Örneğin:
https://localhost:5001/Home/Privacy
: denetleyiciyiHome
vePrivacy
eylemi belirtir.https://localhost:5001/Movies/Edit/5
: denetleyiciyi ve eylemi kullanarakMovies
id=5 ile filmi düzenleme isteğidir veEdit
öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
MVC mimari deseni, bir uygulamayı üç ana bileşen grubuna ayırır: Modeller, Görünümler ve Denetleyiciler. Bu düzen, endişelerin ayrılmasına yardımcı olur: Kullanıcı arabirimi mantığı görünüme aittir. Giriş mantığı denetleyiciye aittir. İş mantığı modele aittir. Bu ayrım, bir uygulama oluştururken karmaşıklığın yönetilmesine yardımcı olur çünkü uygulamanın bir yönü üzerinde bir kerede başka bir uygulamanın kodunu etkilemeden çalışmaya olanak tanır. Örneğin, iş mantığı koduna bağlı olmadan görünüm kodu üzerinde çalışabilirsiniz.
Bu kavramlar, bir film uygulaması oluşturulurken bu öğretici serisinde tanıtılır ve gösterilir. MVC projesi, Denetleyiciler ve Görünümler için klasörler içerir.
Denetleyici ekleme
Çözüm Gezgini'da Denetleyiciler > Denetleyici Ekle'ye > sağ tıklayın.
Yeni İskeleli Öğe Ekle iletişim kutusunda MVC Denetleyicisi - Boş>Ekle'yi seçin.
Yeni Öğe Ekle - MvcMovie iletişim kutusunda, girin HelloWorldController.cs
ve Ekle'yi seçin.
öğesinin içeriğini Controllers/HelloWorldController.cs
aşağıdaki kodla değiştirin:
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers;
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
Bir denetleyicideki her public
yöntem HTTP uç noktası olarak çağrılabilir. Yukarıdaki örnekte, her iki yöntem de bir dize döndürür. Her yöntemden önceki açıklamaları not edin.
HTTP uç noktası:
- Gibi web uygulamasında
https://localhost:5001/HelloWorld
hedeflenebilir bir URL'dir. - Birleştiren:
- Kullanılan protokol:
HTTPS
. - TCP bağlantı noktası da dahil olmak üzere web sunucusunun ağ konumu:
localhost:5001
. - Hedef URI:
HelloWorld
.
- Kullanılan protokol:
İlk açıklama bunun temel URL'ye eklenerek /HelloWorld/
çağrılan bir HTTP GET yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek /HelloWorld/Welcome/
çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, verileri güncelleştiren yöntemler oluşturmak HTTP POST
için iskele altyapısı kullanılır.
Ctrl+F5 (Windows) veya ⌘+F5 (macOS) tuşlarına basarak uygulamayı hata ayıklayıcı olmadan çalıştırın.
Adres çubuğundaki yola ekleyin /HelloWorld
. Index
yöntemi bir dize döndürür.
MVC, gelen URL'ye bağlı olarak denetleyici sınıflarını ve bunların içindeki eylem yöntemlerini çağırır. MVC tarafından kullanılan varsayılan URL yönlendirme mantığı , hangi kodun çağrıldığını belirlemek için aşağıdakine benzer bir biçim kullanır:
/[Controller]/[ActionName]/[Parameters]
Yönlendirme biçimi dosyada Program.cs
ayarlanır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Uygulamaya göz attığınızda ve herhangi bir URL kesimi sağlamadığınızda, varsayılan olarak "Home" denetleyicisi ve yukarıda vurgulanan şablon satırında belirtilen "Dizin" yöntemi kullanılır. Önceki URL segmentlerinde:
- İlk URL kesimi, çalıştırılacak denetleyici sınıfını belirler. Bu nedenle
localhost:5001/HelloWorld
HelloWorld Controller sınıfına eşler. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
, sınıfının yöntemininHelloWorldController
çalıştırılmasına neden olurIndex
. Yalnızca adresine göz atmaklocalhost:5001/HelloWorld
zorunda kaldığınıza ve yöntemin varsayılan olarak çağrıldığınaIndex
dikkat edin.Index
, bir yöntem adı açıkça belirtilmezse denetleyicide çağrılacak varsayılan yöntemdir. - URL kesiminin (
id
) üçüncü bölümü yol verileri içindir. Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
Welcome
ve eylem yöntemidir. URL'nin bölümünü henüz kullanmadınız [Parameters]
.
URL'den denetleyiciye bazı parametre bilgilerini geçirmek için kodu değiştirin. Örneğin, /HelloWorld/Welcome?name=Rick&numtimes=4
.
Welcome
yöntemini, aşağıdaki kodda gösterildiği gibi iki parametre içerecek şekilde değiştirin.
// GET: /HelloWorld/Welcome/
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
Yukarıdaki kod:
- Bu parametre için hiçbir değer geçirilmediyse parametrenin
numTimes
varsayılan olarak 1 olduğunu belirtmek için C# isteğe bağlı-parametre özelliğini kullanır. - Uygulamayı JavaScript gibi kötü amaçlı girişlere karşı korumak için kullanır
HtmlEncoder.Default.Encode
. - içinde
$"Hello {name}, NumTimes is: {numTimes}"
İlişkili Dizeleri kullanır.
Uygulamayı çalıştırın ve adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
URL'de ve numtimes
için name
farklı değerler deneyin. MVC model bağlama sistemi, adlandırılmış parametreleri sorgu dizesinden yöntemindeki parametrelere otomatik olarak eşler. Daha fazla bilgi için bkz . Model Bağlama .
Önceki resimde:
- URL kesimi
Parameters
kullanılmaz. name
venumTimes
parametreleri sorgu dizesinde geçirilir.?
Yukarıdaki URL'deki (soru işareti) bir ayırıcıdır ve sorgu dizesi aşağıdaki gibidir.- Karakter,
&
alan-değer çiftlerini ayırır.
Welcome
yöntemini aşağıdaki kod ile değiştirin:
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
Uygulamayı çalıştırın ve aşağıdaki URL'yi girin: https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
Yukarıdaki URL'de:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
sorgu dizesini başlatır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Yukarıdaki örnekte:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
Model-View-Controller (MVC) mimari deseni bir uygulamayı üç ana bileşene ayırır: Model, View ve Controller. MVC düzeni, geleneksel monolitik uygulamalara göre daha test edilebilir ve güncelleştirilebilir uygulamalar oluşturmanıza yardımcı olur.
MVC tabanlı uygulamalar:
- Models: Uygulamanın verilerini temsil eden sınıflar. Model sınıfları, bu veriler için iş kurallarını zorunlu kılmak için doğrulama mantığını kullanır. Model nesneleri genellikle bir veritabanında model durumunu alır ve depolar. Bu öğreticide, model
Movie
bir veritabanından film verilerini alır, görünüme sağlar veya güncelleştirir. Güncelleştirilmiş veriler bir veritabanına yazılır. - Views: Görünümler, uygulamanın kullanıcı arabirimini (UI) görüntüleyen bileşenlerdir. Genellikle bu kullanıcı arabirimi model verilerini görüntüler.
- Controllers: Şu sınıflar:
- Tarayıcı isteklerini işleyin.
- Model verilerini alma.
- Yanıt döndüren çağrı görünümü şablonları.
MVC uygulamasında görünüm yalnızca bilgileri görüntüler. Denetleyici, kullanıcı girişini ve etkileşimini işler ve yanıtlar. Örneğin, denetleyici URL kesimlerini ve sorgu dizesi değerlerini işler ve bu değerleri modele geçirir. Model, veritabanını sorgulamak için bu değerleri kullanabilir. Örneğin:
https://localhost:5001/Home/Privacy
: denetleyiciyiHome
vePrivacy
eylemi belirtir.https://localhost:5001/Movies/Edit/5
: denetleyiciyi ve eylemi kullanarakMovies
id=5 ile filmi düzenleme isteğidir veEdit
öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
MVC mimari deseni, bir uygulamayı üç ana bileşen grubuna ayırır: Modeller, Görünümler ve Denetleyiciler. Bu düzen, endişelerin ayrılmasına yardımcı olur: Kullanıcı arabirimi mantığı görünüme aittir. Giriş mantığı denetleyiciye aittir. İş mantığı modele aittir. Bu ayrım, bir uygulama oluştururken karmaşıklığın yönetilmesine yardımcı olur çünkü uygulamanın bir yönü üzerinde bir kerede başka bir uygulamanın kodunu etkilemeden çalışmaya olanak tanır. Örneğin, iş mantığı koduna bağlı olmadan görünüm kodu üzerinde çalışabilirsiniz.
Bu kavramlar, bir film uygulaması oluşturulurken bu öğretici serisinde tanıtılır ve gösterilir. MVC projesi, Denetleyiciler ve Görünümler için klasörler içerir.
Denetleyici ekleme
Çözüm Gezgini'da Denetleyiciler > Denetleyici Ekle'ye > sağ tıklayın.
Yeni İskeleli Öğe Ekle iletişim kutusunda MVC Denetleyicisi - Boş>Ekle'yi seçin.
Yeni Öğe Ekle - MvcMovie iletişim kutusunda, girin HelloWorldController.cs
ve Ekle'yi seçin.
öğesinin içeriğini Controllers/HelloWorldController.cs
aşağıdaki kodla değiştirin:
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers;
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
Bir denetleyicideki her public
yöntem HTTP uç noktası olarak çağrılabilir. Yukarıdaki örnekte, her iki yöntem de bir dize döndürür. Her yöntemden önceki açıklamaları not edin.
HTTP uç noktası:
- Gibi web uygulamasında
https://localhost:5001/HelloWorld
hedeflenebilir bir URL'dir. - Birleştiren:
- Kullanılan protokol:
HTTPS
. - TCP bağlantı noktası da dahil olmak üzere web sunucusunun ağ konumu:
localhost:5001
. - Hedef URI:
HelloWorld
.
- Kullanılan protokol:
İlk açıklama bunun temel URL'ye eklenerek /HelloWorld/
çağrılan bir HTTP GET yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek /HelloWorld/Welcome/
çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, verileri güncelleştiren yöntemler oluşturmak HTTP POST
için iskele altyapısı kullanılır.
Ctrl+F5 (Windows) veya ⌘+F5 (macOS) tuşlarına basarak uygulamayı hata ayıklayıcı olmadan çalıştırın.
Adres çubuğundaki yola ekleyin /HelloWorld
. Index
yöntemi bir dize döndürür.
MVC, gelen URL'ye bağlı olarak denetleyici sınıflarını ve bunların içindeki eylem yöntemlerini çağırır. MVC tarafından kullanılan varsayılan URL yönlendirme mantığı , hangi kodun çağrıldığını belirlemek için aşağıdakine benzer bir biçim kullanır:
/[Controller]/[ActionName]/[Parameters]
Yönlendirme biçimi dosyada Program.cs
ayarlanır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Uygulamaya göz attığınızda ve herhangi bir URL kesimi sağlamadığınızda, varsayılan olarak "Home" denetleyicisi ve yukarıda vurgulanan şablon satırında belirtilen "Dizin" yöntemi kullanılır. Önceki URL segmentlerinde:
- İlk URL kesimi, çalıştırılacak denetleyici sınıfını belirler. Bu nedenle
localhost:5001/HelloWorld
HelloWorld Controller sınıfına eşler. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
, sınıfının yöntemininHelloWorldController
çalıştırılmasına neden olurIndex
. Yalnızca adresine göz atmaklocalhost:5001/HelloWorld
zorunda kaldığınıza ve yöntemin varsayılan olarak çağrıldığınaIndex
dikkat edin.Index
, bir yöntem adı açıkça belirtilmezse denetleyicide çağrılacak varsayılan yöntemdir. - URL kesiminin (
id
) üçüncü bölümü yol verileri içindir. Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
Welcome
ve eylem yöntemidir. URL'nin bölümünü henüz kullanmadınız [Parameters]
.
URL'den denetleyiciye bazı parametre bilgilerini geçirmek için kodu değiştirin. Örneğin, /HelloWorld/Welcome?name=Rick&numtimes=4
.
Welcome
yöntemini, aşağıdaki kodda gösterildiği gibi iki parametre içerecek şekilde değiştirin.
// GET: /HelloWorld/Welcome/
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
Yukarıdaki kod:
- Bu parametre için hiçbir değer geçirilmediyse parametrenin
numTimes
varsayılan olarak 1 olduğunu belirtmek için C# isteğe bağlı-parametre özelliğini kullanır. - Uygulamayı JavaScript gibi kötü amaçlı girişlere karşı korumak için kullanır
HtmlEncoder.Default.Encode
. - içinde
$"Hello {name}, NumTimes is: {numTimes}"
İlişkili Dizeleri kullanır.
Uygulamayı çalıştırın ve adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
URL'de ve numtimes
için name
farklı değerler deneyin. MVC model bağlama sistemi, adlandırılmış parametreleri sorgu dizesinden yöntemindeki parametrelere otomatik olarak eşler. Daha fazla bilgi için bkz . Model Bağlama .
Önceki resimde:
- URL kesimi
Parameters
kullanılmaz. name
venumTimes
parametreleri sorgu dizesinde geçirilir.?
Yukarıdaki URL'deki (soru işareti) bir ayırıcıdır ve sorgu dizesi aşağıdaki gibidir.- Karakter,
&
alan-değer çiftlerini ayırır.
Welcome
yöntemini aşağıdaki kod ile değiştirin:
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
Uygulamayı çalıştırın ve aşağıdaki URL'yi girin: https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
Yukarıdaki URL'de:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
sorgu dizesini başlatır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Yukarıdaki örnekte:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
Model-View-Controller (MVC) mimari deseni bir uygulamayı üç ana bileşene ayırır: Model, View ve Controller. MVC düzeni, geleneksel monolitik uygulamalara göre daha test edilebilir ve güncelleştirilebilir uygulamalar oluşturmanıza yardımcı olur.
MVC tabanlı uygulamalar:
- Models: Uygulamanın verilerini temsil eden sınıflar. Model sınıfları, bu veriler için iş kurallarını zorunlu kılmak için doğrulama mantığını kullanır. Model nesneleri genellikle bir veritabanında model durumunu alır ve depolar. Bu öğreticide, model
Movie
bir veritabanından film verilerini alır, görünüme sağlar veya güncelleştirir. Güncelleştirilmiş veriler bir veritabanına yazılır. - Views: Görünümler, uygulamanın kullanıcı arabirimini (UI) görüntüleyen bileşenlerdir. Genellikle bu kullanıcı arabirimi model verilerini görüntüler.
- Controllers: Şu sınıflar:
- Tarayıcı isteklerini işleyin.
- Model verilerini alma.
- Yanıt döndüren çağrı görünümü şablonları.
MVC uygulamasında görünüm yalnızca bilgileri görüntüler. Denetleyici, kullanıcı girişini ve etkileşimini işler ve yanıtlar. Örneğin, denetleyici URL kesimlerini ve sorgu dizesi değerlerini işler ve bu değerleri modele geçirir. Model, veritabanını sorgulamak için bu değerleri kullanabilir. Örneğin:
https://localhost:5001/Home/Privacy
: denetleyiciyiHome
vePrivacy
eylemi belirtir.https://localhost:5001/Movies/Edit/5
: denetleyiciyi ve eylemi kullanarakMovies
id=5 ile filmi düzenleme isteğidir veEdit
öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
MVC mimari deseni, bir uygulamayı üç ana bileşen grubuna ayırır: Modeller, Görünümler ve Denetleyiciler. Bu düzen, endişelerin ayrılmasına yardımcı olur: Kullanıcı arabirimi mantığı görünüme aittir. Giriş mantığı denetleyiciye aittir. İş mantığı modele aittir. Bu ayrım, bir uygulama oluştururken karmaşıklığın yönetilmesine yardımcı olur çünkü uygulamanın bir yönü üzerinde bir kerede başka bir uygulamanın kodunu etkilemeden çalışmaya olanak tanır. Örneğin, iş mantığı koduna bağlı olmadan görünüm kodu üzerinde çalışabilirsiniz.
Bu kavramlar, bir film uygulaması oluşturulurken bu öğretici serisinde tanıtılır ve gösterilir. MVC projesi, Denetleyiciler ve Görünümler için klasörler içerir.
Denetleyici ekleme
Çözüm Gezgini'da Denetleyiciler > Denetleyici Ekle'ye > sağ tıklayın.
Yeni İskeleli Öğe Ekle iletişim kutusunda MVC Denetleyicisi - Boş>Ekle'yi seçin.
Yeni Öğe Ekle - MvcMovie iletişim kutusunda, girin HelloWorldController.cs
ve Ekle'yi seçin.
öğesinin içeriğini Controllers/HelloWorldController.cs
aşağıdaki kodla değiştirin:
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Bir denetleyicideki her public
yöntem HTTP uç noktası olarak çağrılabilir. Yukarıdaki örnekte, her iki yöntem de bir dize döndürür. Her yöntemden önceki açıklamaları not edin.
HTTP uç noktası:
- Gibi web uygulamasında
https://localhost:5001/HelloWorld
hedeflenebilir bir URL'dir. - Birleştiren:
- Kullanılan protokol:
HTTPS
. - TCP bağlantı noktası da dahil olmak üzere web sunucusunun ağ konumu:
localhost:5001
. - Hedef URI:
HelloWorld
.
- Kullanılan protokol:
İlk açıklama bunun temel URL'ye eklenerek /HelloWorld/
çağrılan bir HTTP GET yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek /HelloWorld/Welcome/
çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, verileri güncelleştiren yöntemler oluşturmak HTTP POST
için iskele altyapısı kullanılır.
Uygulamayı hata ayıklayıcı olmadan çalıştırın.
Adres çubuğundaki yola "HelloWorld" ekleyin. Index
yöntemi bir dize döndürür.
MVC, gelen URL'ye bağlı olarak denetleyici sınıflarını ve bunların içindeki eylem yöntemlerini çağırır. MVC tarafından kullanılan varsayılan URL yönlendirme mantığı , hangi kodun çağrıldığını belirlemek için aşağıdakine benzer bir biçim kullanır:
/[Controller]/[ActionName]/[Parameters]
Yönlendirme biçimi dosyada Program.cs
ayarlanır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Uygulamaya göz attığınızda ve herhangi bir URL kesimi sağlamadığınızda, varsayılan olarak "Home" denetleyicisi ve yukarıda vurgulanan şablon satırında belirtilen "Dizin" yöntemi kullanılır. Önceki URL segmentlerinde:
- İlk URL kesimi, çalıştırılacak denetleyici sınıfını belirler. Bu nedenle
localhost:5001/HelloWorld
HelloWorld Controller sınıfına eşler. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
, sınıfının yöntemininHelloWorldController
çalıştırılmasına neden olurIndex
. Yalnızca adresine göz atmaklocalhost:5001/HelloWorld
zorunda kaldığınıza ve yöntemin varsayılan olarak çağrıldığınaIndex
dikkat edin.Index
, bir yöntem adı açıkça belirtilmezse denetleyicide çağrılacak varsayılan yöntemdir. - URL kesiminin (
id
) üçüncü bölümü yol verileri içindir. Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
Welcome
ve eylem yöntemidir. URL'nin bölümünü henüz kullanmadınız [Parameters]
.
URL'den denetleyiciye bazı parametre bilgilerini geçirmek için kodu değiştirin. Örneğin, /HelloWorld/Welcome?name=Rick&numtimes=4
.
Welcome
yöntemini, aşağıdaki kodda gösterildiği gibi iki parametre içerecek şekilde değiştirin.
// GET: /HelloWorld/Welcome/
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
Yukarıdaki kod:
- Bu parametre için hiçbir değer geçirilmediyse parametrenin
numTimes
varsayılan olarak 1 olduğunu belirtmek için C# isteğe bağlı-parametre özelliğini kullanır. - Uygulamayı JavaScript gibi kötü amaçlı girişlere karşı korumak için kullanır
HtmlEncoder.Default.Encode
. - içinde
$"Hello {name}, NumTimes is: {numTimes}"
İlişkili Dizeleri kullanır.
Uygulamayı çalıştırın ve adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
URL'de ve numtimes
için name
farklı değerler deneyin. MVC model bağlama sistemi, adlandırılmış parametreleri sorgu dizesinden yöntemindeki parametrelere otomatik olarak eşler. Daha fazla bilgi için bkz . Model Bağlama .
Önceki resimde:
- URL kesimi
Parameters
kullanılmaz. name
venumTimes
parametreleri sorgu dizesinde geçirilir.?
Yukarıdaki URL'deki (soru işareti) bir ayırıcıdır ve sorgu dizesi aşağıdaki gibidir.- Karakter,
&
alan-değer çiftlerini ayırır.
Welcome
yöntemini aşağıdaki kod ile değiştirin:
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
Uygulamayı çalıştırın ve aşağıdaki URL'yi girin: https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
Yukarıdaki URL'de:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
sorgu dizesini başlatır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Yukarıdaki örnekte:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
Model-View-Controller (MVC) mimari deseni bir uygulamayı üç ana bileşene ayırır: Model, View ve Controller. MVC düzeni, geleneksel monolitik uygulamalara göre daha test edilebilir ve güncelleştirilebilir uygulamalar oluşturmanıza yardımcı olur.
MVC tabanlı uygulamalar:
- Models: Uygulamanın verilerini temsil eden sınıflar. Model sınıfları, bu veriler için iş kurallarını zorunlu kılmak için doğrulama mantığını kullanır. Model nesneleri genellikle bir veritabanında model durumunu alır ve depolar. Bu öğreticide, model
Movie
bir veritabanından film verilerini alır, görünüme sağlar veya güncelleştirir. Güncelleştirilmiş veriler bir veritabanına yazılır. - Views: Görünümler, uygulamanın kullanıcı arabirimini (UI) görüntüleyen bileşenlerdir. Genellikle bu kullanıcı arabirimi model verilerini görüntüler.
- Controllers: Şu sınıflar:
- Tarayıcı isteklerini işleyin.
- Model verilerini alma.
- Yanıt döndüren çağrı görünümü şablonları.
MVC uygulamasında görünüm yalnızca bilgileri görüntüler. Denetleyici, kullanıcı girişini ve etkileşimini işler ve yanıtlar. Örneğin, denetleyici URL kesimlerini ve sorgu dizesi değerlerini işler ve bu değerleri modele geçirir. Model, veritabanını sorgulamak için bu değerleri kullanabilir. Örneğin:
https://localhost:5001/Home/Privacy
: denetleyiciyiHome
vePrivacy
eylemi belirtir.https://localhost:5001/Movies/Edit/5
: denetleyiciyi ve eylemi kullanarakMovies
id=5 ile filmi düzenleme isteğidir veEdit
öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
MVC mimari deseni, bir uygulamayı üç ana bileşen grubuna ayırır: Modeller, Görünümler ve Denetleyiciler. Bu düzen, endişelerin ayrılmasına yardımcı olur: Kullanıcı arabirimi mantığı görünüme aittir. Giriş mantığı denetleyiciye aittir. İş mantığı modele aittir. Bu ayrım, bir uygulama oluştururken karmaşıklığın yönetilmesine yardımcı olur çünkü uygulamanın bir yönü üzerinde bir kerede başka bir uygulamanın kodunu etkilemeden çalışmaya olanak tanır. Örneğin, iş mantığı koduna bağlı olmadan görünüm kodu üzerinde çalışabilirsiniz.
Bu kavramlar, bir film uygulaması oluşturulurken bu öğretici serisinde tanıtılır ve gösterilir. MVC projesi, Denetleyiciler ve Görünümler için klasörler içerir.
Denetleyici ekleme
Çözüm Gezgini Denetleyiciler > Denetleyici Ekle'ye > sağ tıklayın.
İskele Ekle iletişim kutusunda MVC Denetleyicisi - Boş'u seçin.
Yeni Öğe Ekle - MvcMovie iletişim kutusunda, girin HelloWorldController.cs
ve Ekle'yi seçin.
öğesinin içeriğini Controllers/HelloWorldController.cs
aşağıdakilerle değiştirin:
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Bir denetleyicideki her public
yöntem HTTP uç noktası olarak çağrılabilir. Yukarıdaki örnekte, her iki yöntem de bir dize döndürür. Her yöntemden önceki açıklamaları not edin.
HTTP uç noktası:
- Gibi web uygulamasında
https://localhost:5001/HelloWorld
hedeflenebilir bir URL'dir. - Birleştiren:
- Kullanılan protokol:
HTTPS
. - TCP bağlantı noktası da dahil olmak üzere web sunucusunun ağ konumu:
localhost:5001
. - Hedef URI:
HelloWorld
.
- Kullanılan protokol:
İlk açıklama bunun temel URL'ye eklenerek /HelloWorld/
çağrılan bir HTTP GET yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek /HelloWorld/Welcome/
çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, verileri güncelleştiren yöntemler oluşturmak HTTP POST
için iskele altyapısı kullanılır.
Uygulamayı hata ayıklayıcı olmadan çalıştırın.
Adres çubuğundaki yola "HelloWorld" ekleyin. Index
yöntemi bir dize döndürür.
MVC, gelen URL'ye bağlı olarak denetleyici sınıflarını ve bunların içindeki eylem yöntemlerini çağırır. MVC tarafından kullanılan varsayılan URL yönlendirme mantığı , hangi kodun çağrıldığını belirlemek için aşağıdakine benzer bir biçim kullanır:
/[Controller]/[ActionName]/[Parameters]
Yönlendirme biçimi dosyasındaki yönteminde Configure
Startup.cs
ayarlanır.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Uygulamaya göz attığınızda ve herhangi bir URL kesimi sağlamadığınızda, varsayılan olarak "Home" denetleyicisi ve yukarıda vurgulanan şablon satırında belirtilen "Dizin" yöntemi kullanılır. Önceki URL segmentlerinde:
- İlk URL kesimi, çalıştırılacak denetleyici sınıfını belirler. Bu nedenle
localhost:5001/HelloWorld
HelloWorldController sınıfına eşler. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
, sınıfının yöntemininHelloWorldController
çalıştırılmasına neden olurIndex
. Yalnızca adresine göz atmaklocalhost:5001/HelloWorld
zorunda kaldığınıza ve yöntemin varsayılan olarak çağrıldığınaIndex
dikkat edin.Index
, bir yöntem adı açıkça belirtilmezse denetleyicide çağrılacak varsayılan yöntemdir. - URL kesiminin (
id
) üçüncü bölümü yol verileri içindir. Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanmıştır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
Welcome
ve eylem yöntemidir. URL'nin bölümünü henüz kullanmadınız [Parameters]
.
URL'den denetleyiciye bazı parametre bilgilerini geçirmek için kodu değiştirin. Örneğin, /HelloWorld/Welcome?name=Rick&numtimes=4
.
Welcome
yöntemini, aşağıdaki kodda gösterildiği gibi iki parametre içerecek şekilde değiştirin.
// GET: /HelloWorld/Welcome/
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
Yukarıdaki kod:
- Bu parametre için hiçbir değer geçirilmediyse parametrenin
numTimes
varsayılan olarak 1 olduğunu belirtmek için C# isteğe bağlı-parametre özelliğini kullanır. - Uygulamayı JavaScript gibi kötü amaçlı girişlere karşı korumak için kullanır
HtmlEncoder.Default.Encode
. - içinde
$"Hello {name}, NumTimes is: {numTimes}"
İlişkili Dizeleri kullanır.
Uygulamayı çalıştırın ve adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. değerini bağlantı noktası numaranızla değiştirin {PORT}
.
URL'de ve numtimes
için name
farklı değerler deneyin. MVC model bağlama sistemi, adlandırılmış parametreleri sorgu dizesinden yöntemindeki parametrelere otomatik olarak eşler. Daha fazla bilgi için bkz . Model Bağlama .
Önceki resimde:
- URL kesimi
Parameters
kullanılmaz. name
venumTimes
parametreleri sorgu dizesinde geçirilir.?
Yukarıdaki URL'deki (soru işareti) bir ayırıcıdır ve sorgu dizesi aşağıdaki gibidir.- Karakter,
&
alan-değer çiftlerini ayırır.
Welcome
yöntemini aşağıdaki kod ile değiştirin:
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
Uygulamayı çalıştırın ve aşağıdaki URL'yi girin: https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
Yukarıdaki URL'de:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
sorgu dizesini başlatır.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Yukarıdaki örnekte:
- Üçüncü URL kesimi, yol parametresiyle
id
eşleşmiş. - yöntemi,
Welcome
yöntemindeki URL şablonuylaMapControllerRoute
eşleşen bir parametreid
içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
ASP.NET Core