ASP.NET Core MVC uygulamanızda, haftanın günlerini bir ListBox içinde standart bir dizi kullanarak göstermek için aşağıdaki adımları izleyebilirsiniz. Bu örnekte, haftanın günlerini bir dizi (array) kullanarak ve ListBox (çoklu seçim yapılabilen select HTML etiketi) ile ekrana yazdıracağız.
1. HomeController Güncellemesi (Dizi Kullanımı):
Bu adımda haftanın günlerini bir dizi olarak saklayacağız ve bu veriyi View'a göndereceğiz.
using Microsoft.AspNetCore.Mvc;
namespace HaftaninGunleriApp.Controllers
{
public class HomeController : Controller
{
// Haftanın günlerini bir dizi olarak saklıyoruz.
private readonly string[] Gunler = new string[]
{
"Pazartesi",
"Salı",
"Çarşamba",
"Perşembe",
"Cuma",
"Cumartesi",
"Pazar"
};
// GET metoduyla sayfa yüklendiğinde günleri gönderiyoruz
public IActionResult Index()
{
return View(Gunler); // Aynı dizi verisini View'a gönderiyoruz
}
// POST metoduyla form gönderildiğinde seçilen günleri alıyoruz
[HttpPost]
public IActionResult Index(string[] gun) // Çoklu seçim için string[] kullanıyoruz
{
// Seçilen günleri alıyoruz ve işlem yapabiliriz
ViewBag.SecilenGunler = gun; // Seçilen günleri ViewBag ile gönderiyoruz
return View(Gunler); // Aynı dizi verisini View'a gönderiyoruz
}
}
}
GET Metodu: Kullanıcı sayfayı yüklediğinde haftanın günlerini string[] dizisi olarak gönderiyoruz.
POST Metodu: Kullanıcı birden fazla gün seçip formu gönderdiğinde, string[] gun parametresi aracılığıyla seçilen günleri alıyoruz ve ViewBag ile View'a gönderiyoruz.
Bu veriyi bir select HTML etiketi içinde (ListBox olarak bilinir) göstereceğiz. multiple attribute'u ekleyerek çoklu seçim yapılabilmesini sağlıyoruz.
@model string[]
@{
var secilenGunler = ViewBag.SecilenGunler as string[]; // Seçilen günleri alıyoruz
}
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Haftanın Günleri</title>
</head>
<body>
<h1>Haftanın Günleri</h1>
<!-- Seçilen günleri göstermek -->
@if (secilenGunler != null && secilenGunler.Length > 0)
{
<h2>Seçilen Günler:</h2>
<ul>
@foreach (var gun in secilenGunler)
{
<li>@gun</li>
}
</ul>
}
<!-- Haftanın günlerini ListBox içinde gösteriyoruz -->
<form method="post">
<label for="gun">Gün Seçin:</label>
<select id="gun" name="gun" multiple size="7">
@foreach (var gun in Model)
{
<option value="@gun">@gun</option>
}
</select>
<button type="submit">Gönder</button>
</form>
</body>
</html>
@model string[]: Bu satır, string[] türündeki diziyi View'da kullanmamızı sağlar.
@foreach (var gun in Model): Bu döngü ile dizideki her bir öğe (gün) için bir <option> etiketi oluşturulur ve ListBox'ta gösterilir.
multiple: HTML'deki select etiketi için multiple attribute'u, birden fazla öğe seçilebilmesini sağlar.
size="7": Bu, ListBox'ta 7 satır gösterileceğini belirtir (7 gün olduğu için).
Kullanıcı birden fazla gün seçip formu gönderdiğinde, seçilen günleri ekrana basabiliriz. ViewBag ile bu veriyi gönderebiliriz.
@model string[]
@{
var secilenGunler = ViewBag.SecilenGunler as string[]; // Seçilen günleri alıyoruz
}
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Haftanın Günleri</title>
</head>
<body>
<h1>Haftanın Günleri</h1>
<!-- Seçilen günleri göstermek -->
@if (secilenGunler != null && secilenGunler.Length > 0)
{
<h2>Seçilen Günler:</h2>
<ul>
@foreach (var gun in secilenGunler)
{
<li>@gun</li>
}
</ul>
}
<!-- Haftanın günlerini ListBox içinde gösteriyoruz -->
<form method="post">
<label for="gun">Gün Seçin:</label>
<select id="gun" name="gun" multiple size="7">
@foreach (var gun in Model)
{
<option value="@gun">@gun</option>
}
</select>
<button type="submit">Gönder</button>
</form>
</body>
</html>
Eğer form gönderildiğinde kullanıcı gün seçmişse, seçilen günleri ViewBag.SecilenGunler üzerinden alıp liste olarak ekrana basıyoruz.