我有以下链接
<a href="@Url.Action("Index", "Inspection")"><i class="fa fa-user-md"></i> Inspections</a>
在我的路线中,我有以下
routes.MapRoute("Inspections", "{controller}/{action}/{id}", new { controller = "Inspection", action = "Index", id = UrlParameter.Optional });
在Visual Studio中,当我单击它工作的链接时,在我的实时服务器上,我得到一个白色页面,其中包含以下粗体 xxx - / inspection /以及[To Parent Directory]链接
应用程序中的所有其他链接都正常工作并且符合预期 现在我必须去地址栏中的url去xxx / Inspection / Index
Index方法也有[HttpGet]
编辑1: 我尝试了以下内容,我也尝试删除路由
routes.MapRoute("Inspection", "{controller}/{action}/{id}", new { controller = "Inspection", action = "Index", id = UrlParameter.Optional });
编辑2:
这是我拥有的所有路线
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Login", "{controller}/{action}/{id}", new { controller = "Login", action = "Index", id = UrlParameter.Optional });
routes.MapRoute("Employees", "{controller}/{action}/{id}", new { controller = "Employees", action = "Index", id = UrlParameter.Optional });
//Added the following to try to fix issue
routes.MapRoute("Inspection", "{controller}/{action}/{id}", new { controller = "Inspection", action = "Index", id = UrlParameter.Optional });
编辑3: 在InspectionController.cs中我有以下索引方法
// GET: Inspection
[HttpGet]
public ActionResult Index()
{
return View(new ActiveInspectionsViewModel());
}
编辑4:
这是打开的空白页面(示例)
xxx - /检查/
[To Parent Directory]
编辑5:
我认为越来越接近这个问题,我已禁用目录浏览现在我收到403错误,这真的很奇怪,因为我的所有其他Action链接都有效(/ Employees,/ InspectionTemplates,/ Clients,/ Emails,/公司级别)Just / Inspection导致了这个问题,我的网址是inspection.xxx.co.za它可能是导致问题的公园域吗?
答案 0 :(得分:1)
查看您的路线定义。
routes.MapRoute("Login", "{controller}/{action}/{id}",
new { controller = "Login", action = "Index", id = UrlParameter.Optional });
routes.MapRoute("Employees", "{controller}/{action}/{id}",
new { controller = "Employees", action = "Index", id = UrlParameter.Optional });
routes.MapRoute("Inspection", "{controller}/{action}/{id}",
new { controller = "Inspection", action = "Index", id = UrlParameter.Optional });
您注册的所有三个定义都具有相同的网址格式{controller}/{action}/{id}
。
因此,每当您请求页面时,请求URL将与注册的路由定义匹配,当它获得第一个匹配时,请求将被发送到定义中指定的控制器动作。
因此,当您请求Inspection/Index,
时,它与第一个定义( Login )匹配,请求将发送到Login / Index操作方法。
由于在所有三条路线中除了自定义模式之外没有任何其他模式,因此您不需要这些模式。只需删除它们并保留默认值即可。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index",
id = UrlParameter.Optional }
);
}