Я просто немного понял, как работает частичное представление.На самом деле, в вашем и моем случае нет необходимости определять действие Categories()
, если вы думаете, что логика для получения myanothermodel
может быть выполнена в действии Index()
.
Итак, мне назначено mymodel.myanothermodel
вIndex()
action и затем в строго типизированном Index.cshtml
Я использовал это: (предположим, myanothermodel
is Categories
)
@{Html.RenderPartial("Categories", Model.Categories);}
альтернативно:
@Html.Partial("Categories", Model.Categories)
Обратите внимание, что всегдаиспользуйте .RenderPartial()
вместо .Partial()
для лучшей производительности в представлении .cshtml.Я использовал Model.Categories
вместо mymodel.Categories
, потому что у строго набранного Index.cshtml
уже есть @model mymodel
в начале файла.
В моей практике у меня есть такие модели:
Model.Departments
- IList<DepartmentModel>
Model.SelectedDepartment
- DepartmentModel
Model.Employees
- IList<EmployeeModel>
, который используется в:
@{Html.RenderPartial("DepartmentMenu", Model.Departments);}
<div id="employeeViewContainner">
@foreach (var emp in Model.Employees)
{
Html.RenderPartial("CardView" + Model.SelectedDepartments.Name, emp);
}
</div>
Будет отображаться список сотрудников с другим скином для разных отделов.