c# - 将 MVC3 集成到 webforms - MVC 路由不起作用

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

我已按照此链接上的所有步骤进行操作,包括 web.config 更改和添加所需的程序集。
ASP.Net and Webforms in Harmony 我已经将 MVC3 安装到 webforms 项目中并实现了一个 Controller 并在 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 }
        );

这是 Controller

 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")));

一切正常,但 (Home/Index) 未显示。

最佳答案

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

MVCAreaRegistration.RegisterAllAreas(RouteTable.Routes);

现在添加一个 Controller ,例如 Home,并添加一个 View Index。在 Index 操作方法上放置一个断点并运行您的应用程序。在 url 中输入“.../MVC/Home/Index”,断点将被击中。

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

相关文章:

c# - 基于元组或嵌套的字典有好处吗?

c# - GridView.Databind() 不适用于对象列表

c# - StructureMap Setter 注入(inject)未设置属性

asp.net-mvc-3 - ASP.Net MVC 3 - 使用 DataAnnotations 的不显眼的客户端验证 - 字段是必需的,但不应该是

c# - ASP.Net CacheDependency 对象问题

asp.net-mvc - 没有 [required] 属性的 Razor 验证触发

c# - 使用 Interop Excel 时,SSIS 脚本任务断点不起作用

c# - 如何在 C# 中更正规则 'Operator overloads have named alternates'

c# - 如何使用powershell获取所有证书?

asp.net - 使用Asp.net在Asp页面中设置Session