将MVC3集成到webforms - MVC路由无法正常工作

时间:2017-10-10 12:02:01

标签: c# asp.net asp.net-mvc-3 webforms asp.net-mvc-routing

我已按照此链接上的所有步骤操作,包括web.config更改和添加所需的程序集 ASP.Net and Webforms in Harmony 我已经将MVC3安装到webforms项目中并实现了一个控制器并在Global.asax的Application_Start方法中注册了它的路由。

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

这是控制器

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

    public ActionResult Index(int? id)
    {
        ViewData["Message"] = "Hello from Home controller";
        return View();
    }

}

我试图调用它的动作(即/ Home / Index)但得到404 Not Found错误。

为其他.aspx表单注册的路由工作正常。

 routes.Add("Home", new Route("Home", new RoutingHandler("/Default.aspx")));

一切正常,但(主页/索引)没有出现。

1 个答案:

答案 0 :(得分:1)

您可以通过在您的网络项目中添加Area来完成此操作,例如MVC。然后,您需要在Area文件的Global函数Global.asax.cs中的protected void Application_Start(object sender, EventArgs e)课程中注册MVCAreaRegistration.RegisterAllAreas(RouteTable.Routes);,如下所示

Home

现在添加一个控制器,例如Index并添加一个视图说Google Cloud。在Index操作方法上放置一个断点并运行您的应用程序。在网址类型" ... / MVC / Home / Index"而且破发点将被击中。