/ / ASP MVC ma dziwną interpretację modelu - metody rozszerzenia nie mogą być dynamicznie wysyłane - c #, asp.net-mvc, visual-studio, częściowe widoki

ASP MVC ma dziwną interpretację modeli - metody rozszerzeń nie mogą być dynamicznie wywoływane - c #, asp.net-mvc, visual-studio, częściowe widoki

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 № 1

Nie 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ść.