У меня есть два контроллера в моем проекте MVC
, каждый из которых имеет действие/вид Weapon
. Оба представления имеют свой набор свойств @model
: WeaponViewModel
с различными свойствами в зависимости от вида, например. для одного вида, ViewModel.Weapon = Axe
и для другого вида ViewModel.Weapon = Sword
. Axe
и Sword
реализуют интерфейс IWeapon
, поэтому имеют одинаковые свойства.Частичные представления ASP.NET MVC для идентичных видов
Поскольку каждый вид делает то же самое WeaponViewModel
, я нахожу его излишним, чтобы иметь идентичный код Razor
для двух видов. То, что я сделал, чтобы создать представление с именем _Weapon
в папке Shared
как таковой:
@model WeaponViewModel
//razor code goes here
..и в двух взглядов, которые я теперь только этот код:
@model WeaponViewModel
@{ Html.RenderPartial("_Weapon", Model); }
В результате работы, но мой Вопрос: правильно ли использовать Html.RenderPartial
для визуализации (по существу) полного представления? Кроме того, если позже я решил стать более подробным и создать дополнительные частичные представления в моем общем _Weapon
представлении, есть ли какие-либо искажения, которые нужно искать?
Вы можете также использовать EditorFor (м => м) с частичным в соображениях/Shared/EditorTemplates – Tobias