我有一个控制器动作:
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'。
有没有一种方法,在满足某个条件的情况下,我可以从此操作重定向到返回部分视图结果的其他操作?
我想渲染由控件重定向到的动作生成的视图,而不是最初调用的动作'条件为真时查看。
答案 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