2013-09-21 77 views
0

我的基本控制器低於:返回View()和返回base.View()之間有什麼區別?

public class BaseController : Controller 
{ 
    public BaseController() 
    { 
    } 
} 

我的首頁控制器低於:

public class HomeController : BaseController 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult Login() 
    { 
     ActionResult action = base.View("Login"); 
     return action; 
    } 
} 

我的問題是什麼base.View()View()的主要區別? 是否有任何性能限制或任何其他問題?

回答

0

如果View方法在BaseController中未被覆蓋 - 沒有區別,因爲View將從Controller類調用。

1

那麼,這取決於您是否想調用被覆蓋的版本,如果 有一個。如果您完全知道當您編寫代碼時您不想調用重寫的版本,請調用base.MyMethod()。如果 想要使用該類提供的任何版本,請調用 this.MyMethod()或MyMethod()。

Source

+1

這是很好的,你沒有權利要求這段文字是你自己的,但是你爲什麼不提供源? [這裏是一個鏈接到Jon Skeet的消息,這篇文章是從複製的。](http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.csharp/2004-06 /3176.html) – hvd

+0

是的我知道我提供了這個答案作爲Blockquote,但我已經更新了答案。 –

+0

好的。如果我當時使用Base控制器,其中的三個調用View(),base.View()或this.View()之間的調用是更好的編程練習。 – MSTdev

相關問題