C# Kategori oluştururken "model directive may only occur one per document" hatası

salihhakbagg

Decapat
Katılım
23 Şubat 2022
Mesajlar
61
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar selam. Resimde işaretlediğim kısımdaki hatada tek bir defa yapbileceğimi söylüyor model eklemeyi veya ben öyle anladım.
İkinciyi eklemem lazım nasıl veya nerede ekleyebilirim. Birincinin yanına virgül atıp ekleyince hata vermiyor ama işe de yaramıyor.

D6426AB0-8AAB-4EBB-9ADA-9C9A8136C40D.jpeg
 
Son düzenleyen: Moderatör:

Dosya Ekleri

  • resim_2023-06-07_154539429.png
    resim_2023-06-07_154539429.png
    45,9 KB · Görüntüleme: 25
Son düzenleme:
İki tane model gönderemezsiniz, tek bir modelde birden fazla sınıf göndermek isterseniz "viewModel" kullanabilirsiniz. Yeni bir sınıf oluşturun ve örneğin adını "IndexViewModel" koyun, daha sonra içerisinde view kısmında kullanmak istediğiniz sınıfları tanımlayın, controllerda atamaları viewModal kullanarak yapın ve viewModalı gönderin.
 
İki tane model gönderemezsiniz, tek bir modelde birden fazla sınıf göndermek isterseniz "viewModel" kullanabilirsiniz. Yeni bir sınıf oluşturun ve örneğin adını "IndexViewModel" koyun, daha sonra içerisinde view kısmında kullanmak istediğiniz sınıfları tanımlayın, controllerda atamaları viewModal kullanarak yapın ve viewModalı gönderin.


Öndelikle teşekkürler. Controllerdaki atamaları nasıl yapmalıyım viewModeli fazla bilmiyorum örneklendirebilirmisiniz?
 
Öncelikle farklı bir klasör oluşturun ve oraya bir sınıf ekleyin.

C#:
public class IndexViewModel
    {
        public List<Kategori> Kategoriler{ get; set; }
        public List<Haber> Haberler { get; set; }
    }

Daha sonra controllerınızdaki nesnelerle viewModeli doldurun.

C#:
public IActionResult Index()
        {
            IndexViewModel viewModel = new IndexViewModel();
            Kategori kategori1 = new Kategori();
            Kategori kategori2 = new Kategori();
            Haber haber1 = new Haber();
            Haber haber2 = new Haber();
            viewModel.Kategoriler.Add(kategori1);
            viewModel.Kategoriler.Add(kategori2);
            viewModel.Haberler.Add(haber1);
            viewModel.Haberler.Add(haber2);
            return View(viewModel);
        }

Ve son olarak View kısmında bu viewModeli kullanın.

C#:
@model IndexViewModel


@foreach (var item in Model.Kategoriler)
{
    <h2>item</h2>
}

@foreach (var item in Model.Haberler)
{
    <h2>item</h2>
}
 

Yeni konular

Geri
Yukarı