如何从返回部分视图结果的控制器操作重定向到部分视图

时间:2015-11-18 20:21:37

标签: asp.net-mvc vb.net

我有一个控制器动作:

   Function SelectFloor(ByVal selectedBuilding As String) As PartialViewResult
        If oneFloorBuildings.Contains(serializer.Deserialize(Of String)(selectedBuilding)) Then
            Return RedirectToAction("SelectOfficeAddress", "LocationSelect")
        End If

        Dim model = locationSelect.getFloorOptionsForSelectedBuilding(selectedBuilding)

        Return PartialView(model)
    End Function

尽管LocationSelect/SelectOfficeAddress是部分视图,但我收到错误:

  

类型的值' System.Web.Mvc.RedirectToRouteResult'无法转换为' System.Web.Mvc.PartialViewResult'。

有没有一种方法,在满足某个条件的情况下,我可以从此操作重定向到返回部分视图结果的其他操作?

我想渲染由控件重定向到的动作生成的视图,而不是最初调用的动作'条件为真时查看。

2 个答案:

答案 0 :(得分:3)

尝试As ActionResult而不是As PartialViewResult

答案 1 :(得分:3)

尝试更改:

Function SelectFloor(ByVal selectedBuilding As String) As PartialViewResult

为:

Function SelectFloor(ByVal selectedBuilding As String) As ActionResult

您对RedirectToAction的来电将返回RedirectToRouteResult,该ActionResult来自PartialViewResult。 {{1}}也来源于此,但通过将其指定为返回类型,您就太具体了。

见这里:

https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx

对于继承链:

https://msdn.microsoft.com/en-us/library/system.web.mvc.partialviewresult(v=vs.118).aspx

https://msdn.microsoft.com/en-us/library/system.web.mvc.actionresult(v=vs.118).aspx