Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 9 sürümüne bakın.
Yazan 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,
Movie
modeli bir veritabanından film verilerini alır, görünümle paylaşır veya günceller. 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 şunlardır:
- 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
: ID=5 olan filmiMovies
denetleyicisi veEdit
eylemi kullanarak düzenleme talebidir; bu unsurlar, öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanacaktı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.
Add New Scaffolded Item iletişim kutusunda MVC Controller - Empty>Add 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. - Bileşimler
- 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 yorum, bunun temel URL'ye eklenerek çağrılan bir /HelloWorld/
yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, HTTP POST
yöntemlerini üretmek ve verileri güncellemek için iskele motoru kullanılır.
Ctrl+F5tuş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şleştirir. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
,Index
sınıfınınHelloWorldController
yöntemini çalıştırmasına neden olur. Yalnızcalocalhost:5001/HelloWorld
adresine göz attığınızda, yöntemin varsayılan olarakIndex
çağrıldığını fark 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çıklanacaktır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
ve eylem yöntemi Welcome
'dir. Henüz URL'nin [Parameters]
bölümünü kullanmadınız.
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
. -
İliştirilmiş Dizeler
$"Hello {name}, NumTimes is: {numTimes}"
içinde kullanılır.
Uygulamayı çalıştırın ve şu adrese gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
URL'de name
ve numtimes
için 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi içerir. - Sondaki
?
sorgu dizesini başlatır.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Yukarıdaki örnekte:
- Üçüncü URL kesimi,
id
dosyasındaki yönlendirme şablonunda tanımlandığı gibi yol parametresiProgram.cs
ile eşleşti. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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,
Movie
modeli bir veritabanından film verilerini alır, görünümle paylaşır veya günceller. 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 şunlardır:
- 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
: ID=5 olan filmiMovies
denetleyicisi veEdit
eylemi kullanarak düzenleme talebidir; bu unsurlar, öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanacaktı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.
Add New Scaffolded Item iletişim kutusunda MVC Controller - Empty>Add 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. - Bileşimler
- 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 yorum, bunun temel URL'ye eklenerek çağrılan bir /HelloWorld/
yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, HTTP POST
yöntemlerini üretmek ve verileri güncellemek için iskele motoru kullanılır.
Ctrl+F5tuş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şleştirir. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
,Index
sınıfınınHelloWorldController
yöntemini çalıştırmasına neden olur. Yalnızcalocalhost:5001/HelloWorld
adresine göz attığınızda, yöntemin varsayılan olarakIndex
çağrıldığını fark 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çıklanacaktır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
ve eylem yöntemi Welcome
'dir. Henüz URL'nin [Parameters]
bölümünü kullanmadınız.
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
. -
İliştirilmiş Dizeler
$"Hello {name}, NumTimes is: {numTimes}"
içinde kullanılır.
Uygulamayı çalıştırın ve şu adrese gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
URL'de name
ve numtimes
için 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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,
Movie
modeli bir veritabanından film verilerini alır, görünümle paylaşır veya günceller. 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 şunlardır:
- 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
: ID=5 olan filmiMovies
denetleyicisi veEdit
eylemi kullanarak düzenleme talebidir; bu unsurlar, öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanacaktı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.
Add New Scaffolded Item iletişim kutusunda MVC Controller - Empty>Add 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. - Bileşimler
- 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 yorum, bunun temel URL'ye eklenerek çağrılan bir /HelloWorld/
yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, HTTP POST
yöntemlerini üretmek ve verileri güncellemek için iskele motoru kullanılır.
Ctrl+F5tuş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şleştirir. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
,Index
sınıfınınHelloWorldController
yöntemini çalıştırmasına neden olur. Yalnızcalocalhost:5001/HelloWorld
adresine göz attığınızda, yöntemin varsayılan olarakIndex
çağrıldığını fark 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çıklanacaktır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
ve eylem yöntemi Welcome
'dir. Henüz URL'nin [Parameters]
bölümünü kullanmadınız.
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
. -
İliştirilmiş Dizeler
$"Hello {name}, NumTimes is: {numTimes}"
içinde kullanılır.
Uygulamayı çalıştırın ve şu adrese gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
URL'de name
ve numtimes
için 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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,
Movie
modeli bir veritabanından film verilerini alır, görünümle paylaşır veya günceller. 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 şunlardır:
- 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
: ID=5 olan filmiMovies
denetleyicisi veEdit
eylemi kullanarak düzenleme talebidir; bu unsurlar, öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanacaktı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.
Add New Scaffolded Item iletişim kutusunda MVC Controller - Empty>Add 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. - Bileşimler
- 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 yorum, bunun temel URL'ye eklenerek çağrılan bir /HelloWorld/
yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, HTTP POST
yöntemlerini üretmek ve verileri güncellemek için iskele motoru 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şleştirir. - URL segmentinin ikinci bölümü, sınıfındaki eylem yöntemini belirler. Bu nedenle
localhost:5001/HelloWorld/Index
,Index
sınıfınınHelloWorldController
yöntemini çalıştırmasına neden olur. Yalnızcalocalhost:5001/HelloWorld
adresine göz attığınızda, yöntemin varsayılan olarakIndex
çağrıldığını fark 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çıklanacaktır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
ve eylem yöntemi Welcome
'dir. Henüz URL'nin [Parameters]
bölümünü kullanmadınız.
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
. -
İliştirilmiş Dizeler
$"Hello {name}, NumTimes is: {numTimes}"
içinde kullanılır.
Uygulamayı çalıştırın ve şu adrese gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
URL'de name
ve numtimes
için 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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,
Movie
modeli bir veritabanından film verilerini alır, görünümle paylaşır veya günceller. 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 şunlardır:
- 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
: ID=5 olan filmiMovies
denetleyicisi veEdit
eylemi kullanarak düzenleme talebidir; bu unsurlar, öğreticinin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.
Yönlendirme verileri öğreticinin ilerleyen bölümlerinde açıklanacaktı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.
Scaffold 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. - Bileşimler
- 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 yorum, bunun temel URL'ye eklenerek çağrılan bir /HelloWorld/
yöntemi olduğunu belirtir.
İkinci açıklama, URL'ye eklenerek çağrılan bir HTTP GET yöntemini belirtir. Öğreticinin ilerleyen bölümlerinde, HTTP POST
yöntemlerini üretmek ve verileri güncellemek için iskele motoru 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 formatı, Configure
dosyasındaki Startup.cs
yönteminde 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
,Index
sınıfınınHelloWorldController
yöntemini çalıştırmasına neden olur. Yalnızcalocalhost:5001/HelloWorld
adresine göz attığınızda, yöntemin varsayılan olarakIndex
çağrıldığını fark 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çıklanacaktır.
Adresine gidin: https://localhost:{PORT}/HelloWorld/Welcome
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
Welcome
yöntemi çalışır ve dizesini This is the Welcome action method...
döndürür. Bu URL için denetleyici HelloWorld
ve eylem yöntemi Welcome
'dir. Henüz URL'nin [Parameters]
bölümünü kullanmadınız.
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
. -
İliştirilmiş Dizeler
$"Hello {name}, NumTimes is: {numTimes}"
içinde kullanılır.
Uygulamayı çalıştırın ve şu adrese gidin: https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
. Bağlantı noktası numaranızı {PORT}
ile değiştirin.
URL'de name
ve numtimes
için 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi 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ş. -
Welcome
yöntemi,id
yönteminde URL şablonuyla eşleşen birMapControllerRoute
parametresi içerir. - Sondaki
?
(içindeid?
) parametresininid
isteğe bağlı olduğunu gösterir.
ASP.NET Core