【发布时间】:2018-08-07 13:36:36
【问题描述】:
我有一个其他人已经开发过的应用程序,它最初是一个包含多个部分的 Web.forms 应用程序,现在正在转换为 MVC。有两部分已转到 MVC,其中一个工作正常,但另一个我遇到了路由问题。
路由在 .cshtml 中显示为:
<a href="@Url.RouteUrl("TableDetails", new { id=testTable.theId })@Request.Url.Query">Test Table</a>
该项目是 Web 表单,其中包含一个名为 Areas > TableProject > Controllers 的文件夹以及与 mvc 项目相关的其他文件夹。在控制器中有一个 HomeController.cs,它具有:
[HttpGet]
[Route("{id:int}/{seId:int?}", Name = "TableDetails")]
public ActionResult TableDetails(int id, int? seId)
{
// code
}
路由文件是这样的:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.RouteExistingFiles = false;
routes.IgnoreRoute("anotherproject/{*pathInfo}");
routes.MapPageRoute(
"WebFormDefault",
string.Empty,
"~/index.aspx");
routes.MapRoute(
"MvcDefault",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}
由于找不到 TableDetails 路由,我无法让表项目工作。另一个 MVC 项目工作正常。
错误是:
在路由集合中找不到名为“TableDetails”的路由。参数名称:名称
【问题讨论】:
-
错误是:在路由集合中找不到名为“TableDetails”的路由。参数名称:名称
标签: c# asp.net .net asp.net-mvc routing