bir sayfada koşullu birden çok modelli render (controller içinde PartialViewResult tetiklenerek) nasıl yapılır?

soruldu: 14 Oca '15, 08:14

ercet00ilk's gravatar image

ercet00ilk
994435662
cevap kabul oranı: 11%

Senaryoyu yazsanız daha yararlı cevap alabilirsiniz. Normalde dedinizi view içinde bir if ile @Html.Action() ile cagırabiliyorsunuz. Ama böyle bişeyden bahsetmiyorsunuz zannedersem...

(14 Oca '15, 08:44) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

üstte basit / detaylı site içi arama motoru, altında sonuçların listelendiği, altında son 24 saat içinde aranan kelimeler vs. gibi gibi karışık bir yapı. yani asp.net webform içindeki user control gibi ama controllerdan tetikleyip model verip o şekilde kullanmak istiyorum. mümkün mü dür?

(14 Oca '15, 10:40) ercet00ilk ercet00ilk's gravatar image

Mümkün, dediğim gibi view içinde her partialView için bi action metod oluşturup, parametre göndererek yapabilirsiniz.

(14 Oca '15, 17:30) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

hocam tam olarak bu dediğinizi nasıl yapacağımı çözemedim, controller de metodları yazıyorum fakat view içinden ne yazdıysam ilgili metoda düşüremedim. partialview ile ismini verirsem direk sayfayı alıyor, yanına model verirsem yine modeli alıp aynı sayfayı basıyor, fakat controllerdaki metoda düşmüyor. parametreli bir örnek paylaşırsanız sevinirim.

(15 Oca '15, 03:16) ercet00ilk ercet00ilk's gravatar image

index.cshtml

@Html.Action("_Partial1", "SomeController", new { someParameter = "some parameter 1", ... })
@Html.Action("_Partial2", "SomeController", new { someParameter = "some parameter 2", ... })
@Html.Action("_Partial3", "SomeController", new { someParameter = "some parameter 3", ... })
...

SomeController.cs

public ActionResult _Partial1(string someParameter, ...){
    var model = someModel;

    return PartialView(model);
}

// diger partial view ler
...

PartialView 'i action içinden çağırmak demek, HttpGet isteği yapmak demektir. HttpGet istegi içerisinde parametre olarak, kompleks model gönderemezsiniz. Sadece primitive tipler(int, string, bool, ...) gönderisiniz.

Farklı view lere farklı modeller göndermek yerine ilgili actiona bir parametre yollarsınız, mesela id gibi, action içinden o id ye ait modeli bulur gönderirsiniz.

Kodlarınızı görsem daha net cevaplayabilirdim belki. Sorunuzdan anladığım kadarı ile cevaplamaya çalıştım...

permanent link

cevaplandı: 15 Oca '15, 03:49

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

Hocam muhteşemsiniz :) action değil de renderaction ile yaptığımda oldu.

(15 Oca '15, 04:42) ercet00ilk ercet00ilk's gravatar image
1

aslında ikiside çalışır. Çağırma yönteminizden dolayı Html.Action çalışmamış olabilir. http://theshravan.net/blog/difference-between-html-renderaction-and-html-action/

(15 Oca '15, 04:46) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×81
×2

Soruldu: 14 Oca '15, 08:14

Görüntüleme: 632 kez

Son güncelleme: 15 Oca '15, 04:46

powered by BitNami OSQA