У меня проблемы с маршрутизацией в MVC.Я создал контроллер для своей страницы контактов, но если я не укажу маршрут как /contact/index
, он вернет 404. Я не могу понять, почему он не может найти представление только с /contact
в URL.Мой RouteConfig
выглядит хорошо для меня.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "T",
url: "T/{action}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Holding",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Holding", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Единственная причина, по которой я вижу, что он не находит свой вид, - это новый маршрут, который я настроил для отображения страницы, содержащей сайт.Интересно, что /t
отображает домашнюю страницу 'demo', поэтому я не понимаю, почему ей не нравится просто /contact
.
Эта SO статья сказала мне, что я могу исправитьпроблема в том, чтобы дать ей свой собственный MapRoute
, но мне не нужно было все это делать?
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Holding()
{
return View();
}
}
public class ContactController : Controller
{
// GET: Contact
public ActionResult Index()
{
return View();
}
}
Это должно быть что-то глупое, но я не могу решить это.