2012-07-25 101 views
1

现在我正在重写一些代码,但我也想使用现有的代码作为占位符。我有一个“参考”控制器,它包含所有新代码和一个包含旧代码的“参考”控制器。从另一个控制器返回一个PartialViewResult

我想要做的就是从我的Reference控制器中从我的旧的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?

回答

2

更改方法签名返回的ActionResult

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

我得到确切同样的错误。 – 2012-07-25 20:37:48

+0

我没有看到一个原因,你可以发布你正在使用的其他代码吗? – Chandu 2012-07-25 20:38:48

+0

您确定您已经将签名从'PartialViewResult'更改为'ActionResult',如Chadnu的代码所示? – 2012-07-25 20:39:37