ASP.NET MVC _Layout CSS Menü Active


May 2019 (0) Iptv 5/4/2024


ASP.NET MVC ile eğer bir proje geliştiriyor ve _Layout (ASP.NET'de ki Master.Page) yapısını kullanıyorsanız ihtiyaç duyacağınızı düşünüyorum. Hazırlamış olduğunuz web sitelerinin menülerinde ki farklılığı kullanıcılara rahatlıkla yansıtabilirsiniz. Bu işlem oldukça basit gerçekleşiyor. Kullanıcı menüye tıklıyor ve o anda seçili olan menü elamanı diğerlerinden biraz daha farklı görünmesini sağlıyor.

Şimdi gelelim bu işlemi en basit nasıl gerçekleştiririz. MVC'nin bize sunmuş olduğu kolaylıklarla bu işlemi oldukça basit bir şekilde gerçekleştireceğiz. MVC Helpers işimizi oldukça kolaylaştıracak.
Bu konuyu detaylıca bu adresten inceleyebilirsiniz. 
Öncelikle Solution Explorer penceresinden Projemize sağ tıklayarak yeni bir klasör oluşturuyoruz.
Ben ismini Helpers yaptım.
Daha sonra oluşturduğumuz klasör üzerine sağ tıklayarak Add > New Item > Class ekliyoruz.
İsmini'de HtmlHelpers.cs yapıyoruz.
Kodları aynen bu şekilde yazıyoruz. 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCProject.Helpers
{
    public static class HtmlHelpers
    {
        public static string ActivePage(this HtmlHelper helper, string controller, string action)
        {
            string classValue = "";
            string currentController = helper.ViewContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString();
            string currentAction = helper.ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
            if (currentController == controller && currentAction == action)
            {
                classValue = "active";
            }
            return classValue;
        }
    }
}
Daha sonra _Layout sayfamıza gelerek. Sayfamızın en başına oluşturduğumuz Helpers'ı ekliyoruz. 
@using MVCProject.Helpers; //MVCProject benim projemin ismi.
_Layout sayfasında ki menü kodlarına gelerek gerekli eklemeleri tamamlıyoruz.
<ul class="topnav">
   <li><a href="/Home/Index" class="@Html.ActivePage("Home","Index")">Anasayfa</a></li>
   <li><a href="/Home/About" class="@Html.ActivePage("Home","About")">Hakkımızda</a></li>
   <li><a href="/Home/Contact" class="@Html.ActivePage("Home","Contact")">İletişim</a></li>
</ul>

Menü kodumuzun içinde ki class="active" kodunu kullanmaktansa her menü elemanının class'ına @Html.ActivePage("Home","Index") kod parçacığını yazıyoruz. Böylece kullanıcı hangi sayfada geziniyor iste o sayfanın class'ını active olarak ekliyor. Diğer class'lar boş kalacaktır. 

@Html.ActivePage("Controller Adı","Action Adı") Burada ki ActivePage ise Helpers içinde oluşturmuş olduğumuz sınıf.


Yorum yapabilmek için giriş yapınız

Giriş Yap

Sitede Ara

En Çok Okunanlar

Android Cihazlara POP3 E-Posta Hesabı Kurulumu (1761)
Windows simgelerinde beyaz ikon sorunu ve çözümü (1332)
SQL REPLACE() Kullanımı (884)
Yerel Ağ Bağlantısına girmek istediğimde ''Bağlantı özelliklerine erişmek için yeterli yetkiniz yok.Yöneticinize başvurun'' uyarısı.. (486)
Access violation at address 0518fde4 inmodule NETINFO.dll Read of adress 00000000 (393)
CMD komutları ile Windows Aktivasyonu (367)
PatchCleaner v1.4.2.0 indir Windows Installer Temizleme Programı (357)
MailEnable Webmail Unknown or Disabled User Hatası (348)
Server communication failure. Please refresh your browser and try again. (338)
Bedava Netflix Hesapları 2022 (Ücretsiz Premium Hesaplar) (331)
There is already an object named in the database Cozum (326)
Turbobit Premium Hesaplar Bedava Güncel Üyelikler 2022 (315)
Turbobit Premium Hesaplar Güncel Liste 2022 (312)
Windows 10 Gereksiz Servislerin Kapatılması - Resimli Anlatım (295)
Yazıcı hata kodu 0x0000011b sorun ve cozumu (272)
Windows Bileşen Deposu (WinSxS) Klasörünü Temizleme (269)
ASP.NET MVC Email Doğrulama Sayfası (Verification) (233)
Adobe After Effects CC 2019 Full İndir – v16.1.1.4 (230)
Linq ile inner Join Kullanımı (228)
Dinozor Nesline Son Veren Silen Asteroit Felaketi, Nasıl Gerçekleşti? (219)
3 Adımda Server olay loglarının silinmesi (199)
Windows 10 durdurulabilecek hizmetler (181)
Visual Studio 2017 Dil Ekleme/Değiştirme (174)
Bedava Turbobit Premium Hesap 2022 (%100 Güncel Hesaplar) (165)
Mailenable IP Adresi Nasıl Banlama / How to ip ban block on Mailenable? (153)

Son Yorumlar