2014-01-11 5 views
0

У меня есть контроллер, называемый C, и он имеет действие с именем A. У меня также есть общий вид под названием _Navigation (Views/Shared/_Navigation.cshtml). В середине файла (Views/C/A.cshtml) У меня есть такой код:Mvc Html.Partial() не работает при вызове с параметром ViewDataDictionary

@Html.Partial("_Navigation") 

Все работает хорошо, навигация загружается. Однако, если я попытаюсь позвонить

@Html.Partial("_Navigation", new ViewDataDictionary() { { "foo", "bar"}}) 

вдруг навигационная часть не загружена на страницу. Я также пробовал

@Html.Partial("~Views/Shared/_Navigation", new ViewDataDictionary() { { "foo", "bar"}}) 
@Html.Partial("../Shared/_Navigation", new ViewDataDictionary() { { "foo", "bar"}}) 

@Html.Partial("~Views/Shared/_Navigation", null, new ViewDataDictionary() { { "foo", "bar"}}) 
@Html.Partial("../Shared/_Navigation", null, new ViewDataDictionary() { { "foo", "bar"}}) 

Ни один из них не работал. Я поставил точку останова в _Navigation, и он даже попал! Он также продолжался во всех взглядах без сбоев. Ошибка не отображалась ни на одной консоли в Chrome, ни на выходе, ни на любой странице.

ответ

0

По-видимому, я перезапись весь ViewDataDictionary и следовало назвать так:

@{ ViewData.Add("foo", "bar"); } 

@Html.Partial("_Navigation", ViewData) 
Смежные вопросы