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