Вы можете попробовать передать ViewModel частичным.
@model my.path.to.namespace.MyViewModel
@Html.TextBoxFor(m => m.ComplexModel.Name)
Редактировать
Вы можете создать базовую модель и нажать там сложную модель и передать основанную модель на частичную.
public class MyViewModel :BaseModel
{
public string SomeProperty { get; set; }
}
public class MyViewModel2 :BaseModel
{
public string SomeProperty2 { get; set; }
}
public class BaseModel
{
public MyComplexModel ComplexModel { get; set; }
}
public class MyComplexModel
{
public int id { get; set; }
public string Name { get; set; }
...
}
Тогда ваше частичное будет выглядеть следующим образом:
@model my.path.to.namespace.BaseModel
@Html.TextBoxFor(m => m.ComplexModel.Name)
Если это не приемлемое решение, вам, возможно, придется подумать о переопределении связующего. Вы можете прочитать здесь здесь .