2016-07-21 5 views
1

Teile habe ich ein Layout, das mehrere Ansicht, die Komponenten, die alle von ihnen das gleiche Ansichtsmodell und den Controller mitein Modell zwischen Ansicht Komponenten in Dotnet Kern

so wie kann ich die gleiche Viewmodel-Instanz zwischen alle teilen tun von ihnen?

das ist mein Layout:

<!DOCTYPE html> 
<html lang="es"> 
<head prefix="og: http://ogp.me/ns#"> 
    @await Component.InvokeAsync("Metadata", Share-Model) 
</head> 
<body> 
    @await Component.InvokeAsync("Header", Share-Model) 
    <article id="main-content-article"> 
     @await Component.InvokeAsync("Cover", Share-Model) 
    </article> 
    <section id="rest-fold-content"> 
     @RenderBody() 
     <footer id="main-footer"> 
      @await Component.InvokeAsync("Footer") 
     </footer> 
    </section> 

</body> 
</html> 

Antwort

3

Sie haben es fast:

// inside View Component 
public async Task<IViewComponentResult> InvokeAsync(SharedModel sharedmodel) { ... } 

Innen * .cshtml:

@model MyApp.Models.SharedModel 
... 
    <article id="main-content-article"> 
    @await Component.InvokeAsync("Cover", new { sharedmodel = model }) 
</article> 

Bitte beachten Sie, dass die Unterkunft in der anonymen Klasse Derselbe Name wie der Parameter in der InvokeAsync Methode. Es ist alles klar dokumentiert in der documentation obwohl.

+0

Ich verwende diese Komponenten in einem Layout, denken Sie, ist Ansatz noch für Dotnet-Core gültig? http://stackoverflow.com/questions/13225315/pass-data-to-layout-that-are-common-to-all-pages/13231752#13231752 –

Verwandte Themen