我正在使用路由属性来路由我的ASP应用。 我设法设置了我的大部分应用程序,但是我遇到了主页的一个大问题。
每当用户输入网站地址时,我都希望它被带到主页:
所以
http://localhost:25902/
和
http://localhost:25902/Home/Index
应转移到/ Home / Index。
My Route Config如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我的家庭控制器和索引操作如下:
[RoutePrefix("Home")]
public class HomeController : Controller
{
[Route("Index")]
public ActionResult Index()
{
return View();
}
}
但每当我进入时只有loalhost:25902没有任何关注它。我收到404错误。
我真的不明白这个问题是什么,并希望得到一些帮助:)
答案 0 :(得分:1)
因为根据您的属性路线,当您输入index page
时,它会转到/Home/Index
,因此当您输入{{1}时,您应添加[Route("~/")]
以进入默认索引页面像这样的地址
loalhost:25902
另一种方法是删除[RoutePrefix("Home")]
public class HomeController : Controller
{
[Route("~/")]
[Route("Index")]
public ActionResult Index()
{
return View();
}
}
,并且“约定”默认路由会将您重定向到[Route("Index")]