SORU
20 HAZİRAN 2009, CUMARTESİ


ASP.NET MVC Denetleyicisi Yöntemleri ActionResult Dönüş gerekir?

ASP.NET MVC yeni olmak, kontrol yöntemleri imzası merak ediyorum. Gördüğüm tüm örneklerde, onlar her zaman onlar aslında bir ViewResult örneği veya benzeri bir dönüş bile ActionResult dönüş gibi görünüyor.

Burada sık görülen bir örnek:

public ActionResult Index()
{
    return this.View();
}

Böyle bir durumda, public ViewResult Index(), metot ve güçlü tip destek almak daha mantıklı değil mi?

Bu deney çalışır gösterir, bu mümkün görünüyor.

Bu polimorfizmi istenen durumlar olabilir (yalnızca belirli durumlarda yönlendirmek istiyorum, ancak diğer durumlarda bir görünüm göstermek gibi) farkındayım, ama yöntemiher zamandöndürür bir görünüm, bir ViewResult daha çekici bulurdum.

Açısından gelecekteki uyumluluk, ActionResult açıkçası sağlar daha sağlam bir imza, ama eğer bir denetimleri tüm kod tabanı, bu her zaman mümkün değiştirmek için bir yöntem imzası için daha genel bir dönüş yazarsanız gerektiğini gerekli hale gelecek.

Farkında olmadığım başka düşünceler, ya da sadece devam edin ve özel dönüş türleri ile kumanda yöntemlerimi ilan etmeli miyim?

CEVAP
20 HAZİRAN 2009, CUMARTESİ


İnternetteki birçok örnek dönüşü gibi görünüyor olsa da kesinlikle belirli bir dönüş türleri kullanabilirsinizActionResult. Sadece geri dönmek istiyorumActionResultsınıf eylem yöntemi farklı yollar farklı alt döndürür.

Steven Sanderson de kitabı Pro ASP.NET MVC Framework özel tipte dönen önerir. Alıntı aşağıda bir göz atın:

"Bu eylem yöntem özellikle ViewResult bir örneğini döndürür olduğunu beyan eder. Yöntemin dönüş türü (her eylem için temel sınıf sonuçları) ActionResult olsaydı yerine sadece aynı işe yarar. Aslında, bazı ASP.NET MVC programcıları her zaman belirli bir alt dönecektir bundan eminim bilseler bile nonspesifik bir ActionResult döndüren olarak tüm eylem yöntemlerini bildirir. Ancak, yöntemleri en belirli bir türü (gibi onlar da kabul döndürmesi gereken nesne yönelimli programlama köklü bir prensip meselesi. Bu prensip aşağıdaki maksimize yöntem, birim testleri gibi çağıran bir kod kolaylık ve esneklik."

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • Crossover

    Crossover

    18 HAZİRAN 2007