2011-01-02 21 views
0

ich möchte dynamisch ascx-dateien erstellen, um sie teilweise zu rendern. aber ich weiß, sie ot zu zeigen, ich brauche mindestens Dummy-Methode:asp mvc controller creation

public ActionResult test() 
    { 
     return PartialView(); 
    } 

wie kann ich diese Methode für jede neue ascx-Datei erstellen?

upd: ich brauche fabrik?

Antwort

0

Warum würden Sie dynamische Ascx-Dateien erstellen?

Wenn Sie das gesamte Layout im Controller erstellen möchten, sollten Sie es direkt zurückgeben können.

Aber warum sollten Sie das tun? Auf diese Weise wird es sehr schwierig, Komponententests, Refactoring und Wiederverwendung durchzuführen.

0

Sie müssten Ihre .ascx-Steuerelemente im Voraus erstellen. Wenn Sie dies tun, würde ich empfehlen, dass Sie eine neue Ansichts-Engine registrieren, um einen neuen PartialView Speicherort bereitzustellen.

public class MyViewEngine : WebFormsViewEngine 
{ 
    public MyViewEngine() 
    { 
    PartialViewLocationFormats = new[] 
    { 
     "~/Views/{1}/{0}.ascx", 
     "~/Views/GeneratedControls/{0}.ascx", 
     "~/Views/Shared/{0}.ascx" 
    }; 
    } 
} 

Auf diese Weise können Sie Ihre dynamischen Blick auf den /Views/GeneratedControls/ Ordner schreiben. Wenn Sie eine speziell benannte Steuerung verwenden müssen (dh die Steuerung Sie einen beliebigen Namen hat generieren), dann müssen Sie einfach auf Ihren Anruf PartialView anzupassen:

public ActionResult test() 
{ 
    return PartialView("name-of-control"); 
} 

Ansonsten MVC den Namen des Action als Namen verwenden der zu verwendenden Kontrolle.