是否可以从一个控制器调用一个视图到另一个控制器中的另一个视图?

时间:2019-12-19 14:45:19

标签: c# asp.net-core asp.net-core-mvc

标题几乎是个问题,我正在尝试使用.NET Core来实现。

我在一个名为SharedViewModelsController.cs的文件中有一个方法

public IActionResult Index(int? wsId)
{

    foreach (WorkShiftTask wstask in _context.WorkShiftTask)
    {
        SharedViewModel detail = new SharedViewModel();
        detail.TaskDescription = wstask.TaskId == null ? "N/A" : _context.Task.Find(wstask.TaskId).TaskDescription;
        detail.TaskStart = wstask.TaskStart;
        detail.TaskEnd = wstask.TaskEnd;
        detail.WorkShiftTaskId = wstask.WorkShiftTaskId;
        if (wstask.WorkShiftId == wsId)
        {
            detailList.Add(detail);
        }
    }

    return View(detailList);
}

用于制作 Views / SharedViewModels / Index.cshtml

我想将该视图调用到属于另一个控制器 WorkShiftDetailViewModelsController.cs 的另一个视图中,因此可以将其附加到 Views / WorkShiftDetailViewModels / Edit.cshtml 中。 / p>

我尝试通过此操作来调用它

@await Html.PartialAsync("~/Views/SharedViewModels/Index.cshtml");

但是我收到以下错误

  

处理请求时发生未处理的异常。

     

InvalidOperationException:传递给ViewDataDictionary的模型项的类型为'ExploFormsDB.ViewModels.WorkShiftDetailViewModel',但是此ViewDataDictionary实例需要模型类型为'System.Collections.Generic.IEnumerable`1 [ExploFormsDB.ViewModels.SharedViewModel] '。

是否可以使用部分视图或不使用部分视图?

1 个答案:

答案 0 :(得分:0)

您需要返回以下内容-

return RedirectToAction("ActionName", "MyController");

“ ActionName”是返回视图的操作的名称