0

我们有一个 mvc4 站点,其中 HomeController.Index() 具有以下代码

RedirectionToAction("Page", new { id = "Home" } );

其中动作页面定义为

 public ActionResult Page(string id)
    .....

在调试时,它开始于localhost:xxxxx但随后重定向到www.home.com

在设置断点时,它甚至没有命中方法Page(string id )

关于在哪里看的任何线索?

4

1 回答 1

0

看起来你可能有一些路由问题。RouteConfig.cs 文件位于 MVC4 项目的 App_Start 文件夹中。

另一件事,如果您的 Page 操作与 HomeController 位于不同的控制器中,那么您需要代码如下:

public ActionResult Index()
{
   return RedirectToAction("OtherController", "Page", new { id = "Home" });
}



我使用您拥有的重定向创建了一个基本的 MVC4 项目,它对我有用。用户最终到达以下 URL:[http://localhost:47272/Home/Page/Home]

这是我的 HomeController.cs

public class HomeController : Controller
{
   //
   // GET: /Home/

   public ActionResult Index()
   {
      return RedirectToAction("Page", new { id = "Home" });
   }

   public ActionResult Page(string id)
   {
      return View();
   }
}



这是我的 RouteConfig.cs

public class RouteConfig
{
   public static void RegisterRoutes(RouteCollection routes)
   {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

      routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
      );
   }
}
于 2013-10-01T15:43:33.777 回答