4 Stimmen

Duplizierung von Code in MVC-Controllern

Ich glaube, ich habe ein Problem im Verständnis der richtigen Art der Verwendung von MVC. Das Problem, das ich habe, ist, dass ich Benutzer und Admin-Benutzer habe, beide dürfen eine Kampagne erstellen, aber sie verwenden verschiedene Masterseiten etc. etc.

Meine bisherige Lösung ist...

Controllers
    AdminUserController.cs
    UserController.cs

Views
    AdminUser
        CreateCampaign.aspx
    User
        CreateCampaign.aspx

Aber dabei auf diese Weise muss ich den Code CreateCampaign() sowohl im AdminUserController als auch im UserController duplizieren, und ich habe 2 Ansichten, um die gleiche Sache zu tun.

Ist das die richtige Vorgehensweise, oder habe ich etwas übersehen?

0voto

John Foster Punkte 8577

Wenn es nur darum geht, Benutzern, die Admins sind, eine andere Masterseite anzuzeigen, können Sie die Masterseite, die für die Ansicht verwendet werden soll, vom Controller aus wie folgt festlegen:-

return View("CreateCampaign", User.IsInRole("Admin") ? "Admin", "User");

Dies sollte es Ihnen ermöglichen, einen einzigen Campaign-Controller und eine Create-View zu haben, was mir natürlicher erscheint als Controller, die einem bestimmten Benutzertyp gewidmet sind (was nach einem Implementierungsdetail klingt).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X