我已按照此链接上的所有步骤进行操作,包括更改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")));


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

最佳答案

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

Home

现在添加一个控制器,例如Index并添加一个视图,例如。在索引操作方法上放置一个断点,然后运行您的应用程序。在URL中输入“ ... / MVC / Home / Index”,然后会遇到断点。

关于c# - 将MVC3集成到Web窗体-MVC路由不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46666273/

10-17 00:16