| 

.NET C# Java Javascript Exception

1
Hallo,
ich habe eine MVC3 Anwendung mit den Kategorien Produkt und Material. Für beide Kategorien sollen CRUD Operationen durchgeführt werden.

Für die Controller würde ich gerne eine generische Basis-Klasse implementieren welche es erlaubt, dass die Standardaufrufe nur einmal implementiert werden müssen. Zum Beispiel:

Mein Controller ohne Basisklasse sieht folgendermaßen aus:

public class ProductController: Controller
{
public ViewResult Index()
{
return View(rep.GetAll());
}
...
}


Basisklasse evtl. so:

public class BaseController<TModel> : Controller
{
protected ViewResult Index()
{
// return View();
}

// auch für Create(), Delete(), Edit()
}


Wie kann ich den Aufruf,
return View()
in der Basisklasse so ersetzen, dass die Verbindung zur Index.cshtml (Beispiel), hergestellt werden kann? Also das Mapping funktioniert.

Danke

P.S. Man merkt vielleicht, dass ich noch nicht lange mit ASP.MVC 3 arbeite. Man möge es mir verzeihen. Ich hoffe, mein Anliegen ist trotzdem verständlich.
06.03.2012
bfu 3 2
2 Antworten
1
Hallo,

Ich würde dir von deinem Vorhaben abraten, da es auf dauer zu Verwirrung und Unlesbarkeit führen wird.
Zum Beispiel wirst du ViewModels benötigen, die unterschiedlich sein werden für Produkt und Material, daher kannst du hier schon mal keine einheitliche Controller verwenden.

Desweiteren kannst du dann von den praktischen dingen wie MVC Scaffolding nicht profitieren.

Dein Vorhaben ist zwar umsetzbar, indem du dir die Request-URL anschaust und versuchst den passenden Controler selbst zu bestimmen um dann die passende Überladung der View() Methode aufzurufen. Das ist aber wie gesagt nicht allzu schön

Gruß, basti
27.03.2012
bigbasti 131 2
Danke. Das habe ich mittlerweile auch rausgefunden bzw. gedacht. Es wird einfach zu kryptisch. Trotzdem Danke für Deine Antwort
bfu 05.04.2012
0
All are wishing that once they can look for the paypal money generator here so that they can get money in their account of paypal whenever they need it.
16.07.2017

Stelle deine .net-Frage jetzt!