【发布时间】:2016-10-07 17:51:16
【问题描述】:
我刚刚开始了一个新的 MVC 项目,默认路由似乎没有按我的预期工作。
路由配置:
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 }
);
}
我有一个ActionLink 使用@Html.ActionLink("Scripts", "Index", "Scripts") 进入“脚本”控制器上的“索引”操作。
public class ScriptsController : Controller
{
public ActionResult Index()
{
var model = new IndexModel();
.......
return View(model);
}
}
单击此链接时,浏览器会尝试导航到“http://localhost:1733/Scripts/”,并且浏览器会显示“目录列表被拒绝”错误。当我手动将 URL 更改为“http://localhost:1733/Scripts/Index”时,它工作正常。
默认路由不应该自动推断“索引”操作吗?
它似乎确实适用于作为默认 MVC 站点模板一部分的 ManageController 类(“http://localhost:1733/Manage”带来了 ManageController 的 Index ActionResult)
我做错了什么?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-routing