2010-03-29 19 views
13

Ben olduğunu varsayalım: aksi takdirde, liste öğesini kolları kontrolöre düz yönlendirmek istiyorum varsa listede yalnızca bir öğe, olup olmadığını kontrol bu işlev içindeBir ViewResult veya ActionResult işlevi içinde nasıl yeniden yönlendiririm?

public ViewResult List() 
{ 
    IEnumerable<IModel> myList = repository.GetMyList(); 
    if(1 == myList.Count()) 
    { 
     RedirectToAction("Edit", new { id = myList.Single().id }); 
    } 

    return View(myList); 
} 

Ben Liste Görünümü'nü görüntülemek istiyorum.

Bunu nasıl yaparım? Sadece bir RedirectToAction ekleyerek işe yaramıyor - çağrı vuruldu ama VS sadece bir adım atar ve Görünüm'ü en altta döndürmeye çalışır.

cevap

21

Sadece RedirectToAction yöntemini çağırmak yerine return RedirectToAction gerekir. Ayrıca, yönteminizin bir ActionResult öğesinin hem ViewResult hem de RedirectToRouteResult ile uyumlu bir dönüş türü olması gerekir.

public ActionResult List() 
{ 
    IEnumerable<IModel> myList = repository.GetMyList(); 
    if(1 == myList.Count()) 
    { 
     return RedirectToAction("Edit", new { id = myList.Single().id }); 
    } 

    return View(myList); 
} 
+2

İşlev dönüş türünü ActionResult olarak değiştirdikten sonra çalıştı, şerefe! – Pete

+0

Tüm sabah RedirectToAction() 'ın neden kontrol cihazımda çalışmadığını anlamaya çalışarak kafamı masaya çarpıyor! Çok basit! –

İlgili konular