Frage

Ich versuche, so etwas wie * .ascxs' Werk zu schaffen.

Szenario: Ich möchte Kontrollen machen, die vom Modell abhängig ist, die ich zu PartialView bestanden haben. Ich möchte so etwas wie dieses Ziel erreichen:

    <%@ 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);
    }
}

würde Ich mag wissen, ist es eine bessere Art und Weise mit einer solchen Situation fertig zu werden. Ich nehme an, es ist nicht die effizienteste Methode, um Build-Webseite in ASP.MVC 2.

Wenn diese Methode akzeptabel ist, wie kann ich den Zugang zu solchen Controller beschränken? Ich würde diese Klasse wie nur Seite auf dem Server verwenden und nur durch ascxs der Seiten

War es hilfreich?

Lösung

Mit dem ChildActionOnly() Attribute Zugriff auf Ihre Aktionen zu beschränken.

Was Sie versuchen, ist bereits builtin zu MVC zu tun: Html.DisplayFor()

Siehe auch: http: //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top