Asp.net mvc 从另一个控制器调用控制器视图

Asp.net mvc 从另一个控制器调用控制器视图,asp.net-mvc,redirect,razor,Asp.net Mvc,Redirect,Razor,我在Booking controller中,我需要将用户转移到Home controller的索引操作。我尝试了以下解决方案: return View("~/Views/Home/Index.cshtml"); 这将在调用正确的页面时实现,但是如果不经过该视图的控制器,该页面将给出空引用错误,因为我需要在ViewBag中传递一些内容,这是一个项目集合 RedirectToAction("Index","HomeController") 这里的问题是我无法将其分配为ViewResult:我无法

我在Booking controller中,我需要将用户转移到Home controller的索引操作。我尝试了以下解决方案:

return View("~/Views/Home/Index.cshtml");
这将在调用正确的页面时实现,但是如果不经过该视图的控制器,该页面将给出空引用错误,因为我需要在ViewBag中传递一些内容,这是一个项目集合

RedirectToAction("Index","HomeController")
这里的问题是我无法将其分配为ViewResult:我无法写入:

return RedirectToAction("Index","HomeController")
因为预期的返回值是与类型不匹配的ViewResult。 除了将索引操作的代码复制到另一个控制器中,我还有什么其他解决方案?
我不认为这是一个复制,因为我已经解释了其他帖子中给出的两个解决方案都不起作用。

尝试中有一个小错误。使用
重定向到操作(“索引”、“主页”)
。这应该可以解决您的问题。

尝试中有一个小错误。使用
重定向到操作(“索引”、“主页”)
。这应该可以解决您的问题。

您的问题是什么还不清楚。如果您想重定向到
HomeController
Index
方法,那么它的
返回RedirectToAction(“Index”,“Home”)
(并且您的
BookingController
中的方法可以是
ActionResult
),谢谢,将ViewResult重命名为ActionResult似乎适合我。我没有考虑过……如果您想要特定的类型,那么它可以是
RedirectResult
不清楚您的问题是什么。如果您想重定向到
HomeController
Index
方法,那么它的
返回RedirectToAction(“Index”,“Home”)
(并且您的
BookingController
中的方法可以是
ActionResult
),谢谢,将ViewResult重命名为ActionResult似乎适合我。我没有考虑过……如果您想要特定类型,那么它可以是
RedirectResult
感谢您接受这个答案,但我认为您必须将控制器方法的返回类型从ViewResult重命名为ActionResult。通过这种方式,只有您才能重定向到HomeController的index方法。感谢您接受这个答案,但我认为您必须将控制器方法的返回类型从ViewResult重命名为ActionResult。通过这种方式,只有您能够重定向到HomeController的索引方法。