ASP.NET MVC Html Helper

Html yardımcılarına '@Html.' yazarak ulaşabiliyoruz bunların içinde bazıları yok veya biz kendi istediğimiz şekilde çağırmak ve kullanmak istiyoruz bunu nasıl yapabiliriz bir bakalım.
Öncelikle mvc projemizde karışıklık olmaması adına bir klasör açıyoru ve bu klasörün altında html yardımcılarımızı yazabileceğimiz bir sınıf(class) oluşturuyoruz ben adına "etiketler" dedim siz dilediğiniz adı verebilirsiniz.



1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace htmletiketleri.htmls
{
    public static class etiketler
    {
        public static MvcHtmlString Button(this HtmlHelper helper , string isim,string val,string cs)
        {
            string btn = string.Format("<button class='{1}' name='{0}'>{2}</button>",isim,cs,val);

            return MvcHtmlString.Create(btn) ;
        }

    }
}

Burada dikkat etmemiz gereken bazı hususlar var bunlardan birisi class'ımız statik olmalı aynı zamanda içinde yazmış olduğumuz fonksiyon da public olma durumundan bahsetmiyorum bile.
Ve sınıfımız geriye MVCHTMLSTRiNG döndürmek zorunda bunların yanında fonksiyonun aldığı parametrelerin en başında this HtmlHelper ifadesini belirtmek zorundayız.
Daha sonra bir string oluşturup içine normal html buton veya herhangi bir attribute kodunu yazabilirsiniz. Aldığınız parametreleri de örnek koddaki gibi kullanabilirsiniz. String içerisinde yazdığınız (tırnak işaretleri arasında) sıralamanın bir önemi yok önemli olan oraya yazdığınız numaralardır bu numaralara göre virgülden sonraki kısma ise gelen parametreleri yazmalıyız. Örneğin ben virgülden sonra isim parametresini yazmışım fakat önce butonun classını ekrana yazdırmışım şu kod.

1
string.Format("<button class='{1}' name='{0}'>{2}</button>",isim,cs,val);

Burada benim isim değişkenim 0. değer cs yani class parametrem ise 1. değer bu yüzden class='{1}' yazdım.
Gelelim view kısmına view kısmındaysa artık



1
@Html.Button('butonun_adi','Butonun texti','btn btn-success')

yazarsak ekranda bize bir buton oluşturacaktır

Yorumlar

Bu blogdaki popüler yayınlar

.Net 6.0 ile ModelState kullanımı (RedirectToAction)

Delegate Prediction Func C#

Açıklama