2010-11-12 38 views
0

J'essaye de créer quelque chose comme l'usine de * .ascxs.Contrôleur comme usine ascx - mauvaise idée?

Scénario: Je souhaite rendre les contrôles qui dépendent du modèle, que j'ai transmis à partialView. Je voudrais réaliser quelque chose comme ceci:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyAbstractModel>" %> 

    <%= Model.Property1 %> 
<!-- other more sophisticated displays on model --> 

    <% Html.RenderAction("RenderControl", "Factory", new { model = Model}); %> 

FactoryController:

public ActionResult RenderControl(object model) { 
    if (model.GetType() == typeof(Model1) { 
     return RenderPartial("Partial2", model); 
    } else { 
     return RenderPartial("Partial1", model); 
    } 
} 

Je voudrais savoir est-il une meilleure façon de faire face à cette situation. Je suppose que ce n'est pas la méthode la plus efficace pour construire la page Web dans ASP.MVC 2.

Si cette méthode est acceptable, comment puis-je restreindre l'accès à un tel contrôleur? Je voudrais utiliser cette classe uniquement du côté serveur et uniquement par les pages d'ascxs

Répondre