2013-03-28 2 views
0

Quelle est la différence fondamentale entre deux surcharges View(model) et View("viewName", model) si mon nom d'action est le même que celui de la vue.View (model) vs View ("viewName", modèle)

Lequel de ces est préférable d'utiliser pour rendre le code plus clair? Y a-t-il une différence de performance?

Répondre

2

Je comprends qu'il ne devrait y avoir aucune différence, les deux méthodes sont juste des surcharges.

Voici la source de MVC3 codebase -

protected internal ViewResult View() { 
     return View(null /* viewName */, null /* masterName */, null /* model */); 
    } 

    protected internal ViewResult View(object model) { 
     return View(null /* viewName */, null /* masterName */, model); 
    } 

    protected internal ViewResult View(string viewName) { 
     return View(viewName, null /* masterName */, null /* model */); 
    } 

    protected internal ViewResult View(string viewName, string masterName) { 
     return View(viewName, masterName, null /* model */); 
    } 

    protected internal ViewResult View(string viewName, object model) { 
     return View(viewName, null /* masterName */, model); 
    } 

    protected internal virtual ViewResult View(string viewName, string masterName, object model) { 
     if (model != null) { 
      ViewData.Model = model; 
     } 

     return new ViewResult { 
      ViewName = viewName, 
      MasterName = masterName, 
      ViewData = ViewData, 
      TempData = TempData 
     }; 
    } 

Et en interne, si le viewName n'est pas passé, MVC le recherche en utilisant la ControllerContext.