Я только что начал новый проект MVC, и маршрут по умолчанию, похоже, не работает, как я ожидаю.MVC Default Route not Working for Controller
Routing Configuration:
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
собирается к действию "Index" на "Сценарии" контроллера с @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», он отлично работает.
Не должен ли маршрут по умолчанию автоматически вызывать действие «Индекс»? Это, кажется, работает для ManageController
класса, который был частью MVC шаблона сайта по умолчанию («http://localhost:1733/Manage» воспитывает Index
ActionResult в ManageController
)
Что я делаю не так?
В корне проекта есть каталог «Скрипты», который был частью шаблона MVC по умолчанию для хранения файлов javascript. Это приложение будет заниматься управлением SQL-скриптами, поэтому произошло совпадение имен совпадений. Изменение имени контроллера на 'ScriptController' действительно устранило проблему. Спасибо. –