从另一个Controller返回PartialViewResult

时间:2012-07-25 20:29:30

标签: asp.net-mvc-3

现在我正在重写一些代码,但我也希望将现有代码用作占位符。我有一个“参考”控制器,其中包含所有新代码和一个包含旧代码的“参考”控制器。

我想要做的只是从我的参考控制器中从旧的References控制器返回一个PartialViewResult。我试过这样做:

public PartialViewResult ResolveView(int type)
{
    //Other code
    if (type == (int)ReferenceType.Participant) return ParticipantView();

    //return default partial view
    ...
}

//Called from ResolveView
private PartialViewResult ParticipantView()
{
    return RedirectToAction("ParticipantsView", "References");
}

以下是我的旧控制器方法的内容:

public PartialViewResult ParticipantsView()
{
    var viewmodel = new ParticipantCreateViewModel
                            {
                                Participant = new ParticipantViewModel(),
                                Person = new ParticipantPersonViewModel(),
                                Types = ReferenceService.GetData<ParticipantType>(),
                            };
    return PartialView("_ParticipantsView");
}

我目前收到错误:Cannot implicitly convert type 'System.Web.Mvc.RedirectToRouteResult' to 'System.Web.Mvc.PartialViewResult'

如何让它从我的其他控制器返回我的PartialViewResult需要做什么?

1 个答案:

答案 0 :(得分:2)

更改方法签名以返回ActionResult

private ActionResult ParticipantsView()
{
 return RedirectToAction("ParticipantsView", "References");
}