Przepraszam, jeśli to oczywiste, ale jest to dla mnie bardzo mylące. Po określeniu typu modelu:
@model MyNamespace.MyModel
Który nie wyświetla żadnego błędu i ścieżki do MyModel
jest poprawne, tak samo jak nazwa modelu, niektóre metody wydają się nie rozpoznawać Model
wpisz w następujący sposób:
@Html.Partial("_Title", Model)
Który powoduje następujący błąd:
metod rozszerzenia nie można dynamicznie wysyłać
Które nie powinny być pokazywane, ponieważ Model
typ jest określony. Także, jeśli próbuję go ponownie rzucić:
@Html.Partial("_Title", (MyNamespace.MyModel)Model)
Resharper tak mówi Obsada jest zbędna, ale błąd zniknie.
Co może spowodować takie zachowanie w widoku MVC?
Uwaga: Mam inne widoki, które mają zdefiniowany model w ten sam sposób i które używają dokładnie tych samych widoków częściowych, ale działają poprawnie.
Próbowałem usunąć plik i odtworzyć, a błędy wracają.
Odpowiedzi:
1 dla odpowiedzi № 1Nie jestem pewien, dlaczego w ogóle musisz to zrobić. Kiedy zadzwonisz Partial()
i nie określaj modelu, bieżący model jest przekazywany do częściowej :)
Dzieje się tak, ponieważ wewnętrznie, gdy przekazujesz model do częściowego () MVC kopie aktualny ViewData (w tym ViewData["Model"]
) i przekazuje go do następnej części, jeśli nie określisz wartości, używana jest bieżąca wartość.