Kürzlich Dotnet Kern 1.0.1 bis 1.1 aktualisiert und ViewComponent in MVC mit der folgenden Ausnahme beginnt versagt:InvalidOperationException ViewComponent Rendering in stark typisierte Ansicht
InvalidOperationException: One or more errors occurred. (The model item passed into the ViewDataDictionary is of type 'App.Models.HomeViewModel', but this ViewDataDictionary instance requires a model item of type 'App.Components.LoginViewComponent'.)
Die Index.cshtml macht LoginViewComponent:
@model App.Models.HomeViewModel
<html>
@Component.InvokeAsync("LoginViewComponent")
</html>
Ansichten/Home/Index.cshtml
Die ViewComponent LoginViewComponent/Default.cshtml ist nur eine Klasse, die Informationen, es ist das Modell zeigt:
@model App.Components.LoginViewCompoent
<body>
<div>@Html.DisplayFor(v=>v.LoginName)</div>
</body>
Views/Shared/Komponenten/LoginViewComponent/Default.cshtml
Es macht in Ordnung, wenn Die @model Direktiven wurden entfernt von Default.cshtml.
Darf ViewComponent nicht von der übergeordneten Ansicht, die es einhüllt, getrennt und agnostisch sein? Von der Ausnahme scheint es erforderlich zu sein, die LoginViewComponent ViewComponent in HomeViewModel Klasse zu deklarieren, um es zu rendern.
Konnte keinen Änderungshinweis auf diesem asp.net Core Github finden.
Kommentar und Hilfe zu diesem würde sehr geschätzt werden.
haben Sie udpate Abhängigkeiten auch? (mvc 1.1.0 etc ...) –
@agua von mars Yup, alle _Microsoft.AspNetCore. * Referenz _ ist auf Version 1.1.0 – danial
sieht das komisch zu mir: '@model App.Components.LoginViewCompoent', ist es ein Modell oder eine Komponente? –