У меня есть такая точка зрения, что имеет следующий код:RenderAction или RenderPartial динамически
@model ComPost.Core.CommandsAndQueries.Contract.DataContract.DepositDetailDTO
@section scripts
{
<script src="~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js"></script>
<script src="~/Scripts/jquery.datatables.bootstrap-pagination.js"></script>
<script src="~/js/DepositDetail.js"></script>
}
@Html.RenderAction(new { Action = "DepositDetailOverview", Controller = "Deposit" }, new { id = @Model.Id })
Мой контроллер имеет следующий код:
public ActionResult DepositDetail(int id, int tabIndex = -1)
{
ViewBag.DepositId = id;
ViewBag.ActionMethodForPartialView = this.GetControllerActionForTabIndex(tabIndex);
DepositDetailDTO depositDetailDTO = this.QueriesServiceAgent.Call(s => s.GetDepositDetailForId(id));
return View(depositDetailDTO);
}
public PartialViewResult DepositDetailOverview(int id)
{
ViewBag.DepositId = id;
DepositOverviewScreenDTO depositOverviewScreenDTO = this.QueriesServiceAgent.Call(s => s.GetDepositOverviewForId(id));
return PartialView(depositOverviewScreenDTO);
}
private string GetControllerActionForTabIndex(int tabIndex)
{
if (tabIndex <= 0)
{
return "DepositDetailOverview";
}
else if (tabIndex == 1)
{
return "DepositMailingLists";
}
return "DepositFinalize";
}
Когда мы идем в DepositDetail-экран, мы называем Метод «DepositDetail» на контроллере. Это вызов вспомогательного метода, который возвращает имя вызываемого действия для получения частичного просмотра.
Я не могу заставить его работать. Что мне не хватает?
Не могли бы вы сократить это до минимального примера поведения, которое вы видите? Это довольно большой дамп кода. – jpmc26
Я сократил код. Я получаю ошибку, что моя модель ComPost.Core.CommandsAndQueries.Contract.DataContract.DepositDetailDTO не имеет метода «RenderAction». –
Я пробовал эту строку: @ {Html.RenderPartial ("DepositDetailOverview", новый {id = @ Model.Id}); } Но потом я получил сообщение: Элемент модели, переданный в словарь, имеет тип «<> f__AnonymousType0'1 [System.Int32]», но для этого словаря требуется элемент модели типа «ComPost.Core.CommandsAndQueries.Contract.DataContract .DepositOverviewScreenDTO. –