ASP.NET MVC Dil Seçenekli Veri Tabansız MVC Uygulaması

Öncelikle Visual Studio açıyoruz daha sonra File menüsünden New -> Web Site sekmesindeAsp.net Mvc3 Web Application seçip tamam diyoruz. Yapacağımız uygulama tamamen kendimize has olacağından gelen sayfada Solution Explorertıklıyoruz. Oradan Controllers klasöründen AccountController.cs veHomeControllers.cs classlarını siliyoruz Views klasöründen ise Account ve Home klasörlerini siliyoruz, Model klasöründe ise Accountmodels.cs de Siliyoruz.

Daha sonra Controller klasörünün üstüne sağ tuş yapıp Add üzerine gelip Controller' a tıklıyoruz. Gelen pencerede Action'ın ismini belirliyoruz biz birden fazla Controller kullanacağımız için SayfaTRController yazıyoruz. Şekil – 1 ve Şekil – 1.1 de görüldüğü gibi olması gerekmektedir.


Şekil – 1


Şekil – 1.1

SayfaTRcontroller ekledikten daha sonra gelen sayfa anasayfa ve hakkımızda adında iki tane ActionResult oluşturulmalıdır. Sonraki aşama ise anasayfa ve hakkımızda ActionResult 'ların'ın Viewleri oluşturulmalıdır. Bu ActionResult 'larımız parametre alacak şekilde olmalıdır bu paremetrenin tipi yoktur. Şekil – 2, Şekil – 2.1 ve Şekil – 2.2 de görüldüğü gibi olmaktadır.


Şekil – 2

Şekil – 2.1

Çünkü C# yeni özelliğinden dolayı parametrelerin tipi dinamik olarak belirlenmektedir. Bu parametre bir viewBag atanmalıdır. Çünkü _Layout kısmında oluşturduğumuz parametreleri viewBag sayesinde kullanabilmekteyiz. Şekil – 3 de bulunan OnActionExecuting metodunu tüm sayfaCotroller 'larımıza eklemeliyiz. Diğer dil seçenekli makalelerimize buradan ulaşabilirsiniz. Şekil – 3 de görüldüğü gibidir.

Şekil – 3

Bu aşamamızda ise Global.asax kısmında Controller ve ActionResult 'larımıza göre routes.MapRoute' in içeriği düzenlenir. Ancak Global.asax kısmında dikkat edilmesi gereken önemli bir yer vardır. Bu yer routes.MapRoute'in içeriğidir. İlk parametreye controller 'ımızın ismini yazıyoruz ikinci parametreye ise url kısmına son kullanıcıya gözükmesini isteğimiz herhangi url adresi yazabiliriz. Mesala Hakkımızda.html'nin yerine Hakkımızda.Salih bile yazabilirsiniz. Ancak size tazvsiyemiz arama motorlarının kullandığı herhangi bir url adresi yazmanızdır. Parantezin içi ise Controller 'ımıza göre doldurulmalıdır.

routes.MapRoute(
"hakkimizda",
"hakkimizda.html",
new { controller = "SayfaTR", action = "hakkimizda", dil = "tr" }
);

Diğer actionlarımızada bu işlemlerin aynısı uygulanır. Şekil – 4 de görüldüğü üzere.

Şekil – 4

Daha sonra _Layout'a tıklanır gelen sayfada @Html.ActionLink'in içeriği ActionResult 'larımızın isimlerine göre yazılır. Şekil – 5 de görüldüğü gibidir.

Şekil – 5

Tüm bunları yaptıktan sonra Views/Share/_LogOnPartial.cshtml kısmına tıklanır. Burada uygulamamızın sağ üstte bulunan giriş çıkış yazan yerleri düzeltilir. Her dil için bir tane _LogOnPartial.cshtml tanımlanmalıdır.
Türkçe Dil Seçeneği İçin:

@if(Request.IsAuthenticated) {
Welcome <strong>@Context.User.Identity.Name</strong>!
[ @Html.ActionLink("Çıkış", "LogOff", "Account") ]
}
else {
@:[ @Html.ActionLink("Giriş", "LogOn", "Account") ]
}

İngilizce Dil Seçeneği İçin:

@if(Request.IsAuthenticated) {
Welcome <strong>@Context.User.Identity.Name</strong>!
[ @Html.ActionLink("LogOfF", "LogOff", "Account") ]
}
else {
@:[ @Html.ActionLink("LogOn", "LogOn", "Account") ]
}

Uygulamamızın Solution Explorer'ında Olması Gerekenler Şekil – 6 da görüldüğü gibidir.

Şekil – 6

Her dil için yukarıdaki işlemler tekrarlanır.

Makalemizle ilgili soru ve önerileriniz için yorum yazmayı unutmayınız.

iyi çalışmalar dileriz.

Kod indir : ASP.NET MVC Veri Tabansız Dil Seçenekli MVC Uygulaması
Konuyla İlgili Diğer Makalemizi Okumak İçin Tıklayınız.

Makaleye Yardımlarından Dolayı İbrahim Uğur YILMAZ 'aTeşekkür Ediyorum.

Yorumlar

İsim: Dogukan

Tarih: 4.08.2018 19:24:05

bu dil destegimi saglıyor örnek sitemizi ingilizce yapacagız otomatik bu kodla ve sahıs butona tıkladıgında otomatik yapılan website ingilizcemi oluyor ?

İsim:

Tarih: 2.03.2019 18:51:04

Veri tabanı olmadan zor olur. Örnek olması için yazıldı. Her dil için sayfa oluşturmanız gerekiyor.


Yorum Yaz

Yorumlarınız denetimden geçtikten sonra yayınlanmaktadır...