none
Db den gelen text içinde ki değer ile partialview render etmek RRS feed

  • Genel Tartışma

  • Merhaba arkadaşlar

    mvc de şöyle bir ihtiyacım var. örnek veriyorum db de sayfalar adında bir tablom var sitemdeki tüm sayfalarımı dinamik olarak oluşturuyorum.

    bir kolon da sayfanın içeriğini tutuyorum. burada içerik aralarında kendim bir rule yapıp bu rule içindeki değere göre rule u yazdığım konuma o isimdeki partialview ı render etmek istiyorum. Biraz daha açmam gerekirse.

    sayfalar adındaki tablomda iletişim isimli bir kayıtım olduğunu düşünün.

    sayfa içeriğinin görüneceği kolonda, iletişim adresi telefon numarası vs. html olarak geliyor. en sona da {modul:contact} diye bir rule yazdım. Ben partial viewı sayfamda gösterirken {modul:contact} kısmını string olarak değilde modul klasörümdeki contact partial view ile render edilsin istiyorum. Bu konuda yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.

    7 Aralık 2016 Çarşamba 17:06

Tüm Yanıtlar

  • Selamlar.

    Bunu script kullanmadan mı yapmak istiyorsunuz? Çünkü eğer script kullanacak olursanız, tahminime göre probleminiz çözülür. Ama ne kadar doğru bir işlem olur onu bilmiyorum.



    7 Aralık 2016 Çarşamba 21:13
  • Ama bu iş için partial view yeterli değil bence, sanki Html.Action kullanman gerekiyor gibi geldi bana.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    8 Aralık 2016 Perşembe 07:21
    Moderatör
  • şimdilik şu şekilde çözdüm ama ne kadar doğru bir yöntem bilemiyorum.


                    @{
                        string ContentText = Model.Content.ContentText;
                        int startIndex = 0;
                        if (!string.IsNullOrEmpty(ContentText))
                        {
                            while (true)
                            {
                                int start = ContentText.IndexOf("{modul:", startIndex);
                                int end = ContentText.IndexOf('}', startIndex);
                                if (start != -1)
                                {
                                    int d = start - startIndex;
    
    
                                    @(new HtmlString(ContentText.Substring(startIndex, d)))
    
    
                    int getLength = end - start;
                    string module = ContentText.Substring(start, getLength);
    
                    module = module.Replace("{modul:", "");
    
                    string modulePath = "~/Views/" + module + "/Index.cshtml";
    
                    @Html.Partial(modulePath, Model);
                                    startIndex = end + 1;
                                }
                                else
                                {
                                    int getLength = ContentText.Length - startIndex;
                                    @(new HtmlString(ContentText.Substring(startIndex, getLength)))
    
                                    break;
                                }
                            }
                        }
                        else
                        {
                       
                        }
                    }


    8 Aralık 2016 Perşembe 20:54