2011-01-11 13 views
0

Ich habe eine Teilansicht, die eine Liste der Categories zeigt. Ich möchte diese Teilansicht auf irgendeine Seite stellen, aber ich möchte sie zum Service rufen und eine Liste von Kategorien von sich selbst bekommen, ohne dass ich das bei jeder Controller-Aktion machen muss. So etwas wie Webformulare, in die Sie einen Code-Back einfügen können.ASP.NET MVC Teilansicht, die ohne Controller aktualisiert

Für z.

Aktionen

public ActionResult Index() 
    { 
     JobListViewModel model = new JobListViewModel(); 
     model.Categories= jobService.GetCategories(); 

     return View(model); 
    } 

    public ActionResult Details(int id) 
    { 
     Job job = jobService.GetJob(id); 
     return View(job); 
    } 

habe ich eine teilweise, die das model.Categories Modell nehmen und eine Liste angezeigt werden soll. Wie Sie sehen können, funktioniert die Indexseite gut, aber ich möchte sie auf der Detailseite nicht noch einmal aufrufen. Gibt es eine Möglichkeit, meinen Teilansichtsruf selbst an den GetCategories() Dienst zu senden?

Antwort

3

Verwenden Sie Html.RenderAction - das gibt der Teilansicht eine eigene Controller-Aktion.

+0

Also mache ich eine Aktion, die eine Teilansicht zurückgibt und rendraction aufruft? –

+0

Rechts - abgesehen von der Verwendung einer separaten Controller-Aktionsmethode ist es dem RenderPartial sehr ähnlich. –

2

Sie sollten Ihre Teilaktion auch mit dem Attribut [ChildActionOnly] kennzeichnen.

0

DVark,

Wie in der akzeptierte Antwort erwähnt, für Ihr Szenario ist Render am besten geeignet.

Ich dachte, ich würde einen kleinen Artikel verknüpfen, die auf das Thema meines Denkens destillieren (dh wenn RenderPartial vs Render verwenden):

http://cbertolasio.wordpress.com/2010/09/21/mvc-html-renderaction-vs-html-renderpartial/

hoffen, dass es

[Bearbeiten] hilft - als beiseite. Vor etwa einem Jahr habe ich mich in ein paar Kratzer gestürzt, indem ich die RenderAction-Leistung zugunsten von RenderPartial nicht erkannt habe. Infolgedessen hatte ich den Shared-View-Bereich mit vielen Partialviews bestreut, um von verschiedenen Quellen darauf zugreifen zu können. die Moral der Geschichte: Kenne dein "Territorium", bevor du deine Flagge pflanzt.

Verwandte Themen