2009-08-18 9 views
0

Ich erstelle normalerweise ASP.NET-Websites und habe ein paar Klassen, die ich verwende, hauptsächlich eine BaseClass. Normalerweise würde ichVererbungsprobleme beim Wechsel von C# -Web zu MVC App

ändern
public partial class _default : Page 

zu

public partial class _default : BaseClass 

mit einem an der Spitze des Namespace-Namen. In MVC scheint das jedoch nicht möglich zu sein. Wie bekomme ich meine BaseClass oder eine andere Klasse in meine MVC-Seite?

Der Grund, warum ich frage ist, dass ich eine Klasse errors genannt habe, habe ich dies in der Regel in meiner global.asax Datei:

void Application_Error(object sender, EventArgs e) 
{ 
    Exception objErr = Server.GetLastError().GetBaseException(); 
    namespace.errors.WriteError(Request.Url.ToString(), objErr.Message); 
} 

Aber ich scheine nicht in der Lage, dies zu tun, auch mit einem gemeinsamen Namensraum über die gesamte Website

Es ist sehr wahrscheinlich, dass diese Frage ist lahm, aber was auch immer :-)

Antwort

1

Für die Basisklasse können Sie erstellen ApplicationControler somethig wie:

namespace YourApplication.Controllers 
{ 
    public abstract class ApplicationController : Controller 
    { 
     public ApplicationController() 
     { 
      using(ApplicationDataContext menu = new ApplicationDataContext()) 
      { 
       // loading data for menu control 
       MenuRepository myMenu = new MenuRepository(); 
       ViewData["menu"] = myMenu.MenuList(); 
      } 
     } 
    } 
} 

Und dann kann man einfach erweitern sie von jedem Controler wie folgt aus:

namespace YourApplication.Controllers 
{ 
    public class DefaultController : ApplicationController 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
} 

Hinweis in meinem Beispiel in Anwendung Controler ich Ansicht bin Laden, die ich werde Anzeige auf jeder einzelnen Seite bin, und Sie können alles laden, was Sie wollen, alles, was Sie oft oder immer brauchen. Das ist so ziemlich deine Basisklasse.

+0

Vielen Dank, das ist eine ganz nette Idee, es gibt ziemlich viel zu lernen für das MVC Zeug und das wird sicher helfen, – davethecoder

+0

Ja, es ist eine ziemlich gute Idee, Anwendung controler zu haben, im Falle von In diesem Beispiel zeige ich tatsächlich das ViewData ["menu"] in der Masterseite durch mvc user control (partially) an. Und Sie können natürlich Variablen haben und was nicht. – Dmitris

Verwandte Themen