Мне известен этот вопрос , но оригинальный плакат принял решение, которое не включало в себя вложение.Я определенно хочу вложить частичные представления (если, конечно, нет лучшего способа.)
У меня есть страница, которая может Ajax-загрузить одно из нескольких частичных представлений, в зависимости от действий пользователя в главном представлении.(Представления являются частичными, потому что я понимаю, что если вы хотите загрузить значительный дополнительный контент из вызова Ajax, вам необходимо вернуть PartialViewResult из вашего вызова.) Несколько частичных представлений имеют один общий элемент, раскрывающийся список, который я быхотелось бы выделить его частичное представление.
Но это не работает.Каждое мое частичное представление имеет связанную модель представления, которая является их моделью.Для вложенного частичного представления я хотел бы передать значение одного поля, обнуляемого типа int, из модели представления родительского представления в качестве модели для вложенного частичного представления.
Но во время выполнения я получаю сообщение о том, что моему частичному представлению требуется Nullable , но получено X, где X - тип модели представления, связанной с родительским частичным представлением.
Таким образом, мой вопрос состоит из двух частей:
Разве вложение частичных представлений просто не допускается?(В таком случае я хотел бы, чтобы инфраструктура проверила ситуацию и выдавала ошибку, которая говорит об этом явно.)
Есть ли способ получить желаемый эффект факторизованногоиз общего элемента интерфейса, кроме как с частичным представлением?Я рассмотрел, но не пытался создать шаблон редактирования, потому что полагал, что то, что не будет работать для частичных представлений, не будет работать для них, но я могу ошибаться.
ETA: я обнаружил свою проблему: когда вы передаете нулевое значение для модели в HtmlHelper.Partial или RenderPartial, механизм рендеринга заменяет модель вызывающего частичного представления вместо этого нулевого, предполагая, что вы просто не пропустили модель,
Что не так в моем случае: мой Nullable является Nullable, потому что, пока он не установлен, он является нулевым!Нуль семантически значим!
Но именно поэтому у меня возникла проблема.