Хотя на этот вопрос уже получен ответ, я наткнулся на это и решил, что хочу решить эту проблему для своего проекта, а не обходить его с помощью 'new ViewDataDictionary ()'.
Я создал набор методов расширения:
https://github.com/q42jaap/PartialMagic.Mvc/blob/master/PartialMagic.Mvc/PartialExtensions.cs
Я также добавил несколько методов, которые не вызывают частичное, если модель нулевая, это сэкономит много операторов if.
Я создал их для Razor, но некоторые из них также должны работать с представлениями в стиле aspx (те, которые используют HelperResult, вероятно, не совместимы).
Методы расширения выглядят так:
@* calls the partial with Model = null *@
@Html.PartialOrNull("PartialName", null)
@* does not call the partial if the model is null *@
@Html.PartialOrDiscard("PartialName", null)
Существуют также методы для IEnumerable моделей, а отбрасываемые также можно вызывать с помощью лямбды Razor, которые позволяют обернуть частичный результат некоторым HTML-кодом.
Не стесняйтесь использовать их, если хотите.