Frage

Ich frage mich, ist es ein Äquivalent der Einschienen View-Komponenten für Asp.Net MVC?

Was ich versuche zu tun, einige komplexe UI machen, die auf einer Klasse abhängt, so sagen wir in einer Listenansicht sind, ich möchte ein Objekt in diesem ViewComponent äquivalent passieren, und dass sie das Objekt als Parameter und macht für mich die komplexe UI erlaubt mir andere Sachen in der Ansicht zu tun. Was wäre der beste Weg, das in Asp.Net MVC zu tun?

Da dies eine komplexe UI ist, würde ich es vorziehen, einmal zu schreiben, also Vorlagen sind nicht wirklich die Art und Weise Ich mag würde gehen, da es bedeutet, wird ich Wartbarkeit Probleme haben würde.
Einige Optionen sah ich (und ich bin zu versuchen, starten) sind:

  • Html.RenderAction in dem Futures
  • Subcontroller

Allerdings d ich gerne wissen, ob es etwas anderes ist, oder ob man besser ist als die andere für dieses spezielle Szenario

War es hilfreich?

Lösung

Sie können mit

<% Html.RenderAction<ProductController>(c => c.RenderProductResults()); %>

Haben Sie einen Blick auf diese Seite

Andere Tipps

Was ist RenderPartial? Das scheint die Rechnung zu passen.

<% Html.RenderPartial("MyPartialView", Model.Data); %>

Bitte nehmen Sie sich einen Blick auf DisplayTemplates sowie EditorTemplates in MVC 2-Vorschau.

Oder vielleicht möchten Sie Templated Helfer ?

MvcContrib InputBuilder hat etwas ähnliches.

Auch wenn Sie können einfach schreiben Sie Ihre eigene:

public static string RenderInput(this HtmlHelper html, object data, string prefix)
{
   foreach (var prop in data.GetType().GetProperties())
   {
      object val = prop.GetValue(data, new object[0]);
      string name = prefix + prop.Name;
      switch (prop.PropertyType.Name)
      {
          case "String": html.TextBox(name, val); break;
          case "Guid": html.Hidden(name, val); break;
          default: html.RenderInput(val, name + "."); break;
      }
   }
}

Hinweis Rekursion. Natürlich werden Sie Sammlungen unterstützen, etc ... innerhalb Schalter (PropertyType) hinzufügen müssen ... aber das ist nicht so schwer. Sie können auch für UIHint auf dem Grundstück überprüfen partials zu machen. Viele Möglichkeiten und alles unter Kontrolle; -)

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