asp.net mvc url路由(禁用对/索引和查询字符串的访问
假设我们有以下控制器代码,默认为Home/Index,我有一个域www.abc.com 如何配置使www.abc.com/home和www.abc.com/home/index成为404页asp.net mvc url路由(禁用对/索引和查询字符串的访问,asp.net,asp.net-mvc,asp.net-mvc-4,razor,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,假设我们有以下控制器代码,默认为Home/Index,我有一个域www.abc.com 如何配置使www.abc.com/home和www.abc.com/home/index成为404页 public HomeController : Controller { public ActionResult Index() { } } 另外,假设我有这样的控制器,我假设用户可以通过以下方式访问它:www.abc.com/home/index/1或使用查询字符
public HomeController : Controller {
public ActionResult Index() {
}
}
另外,假设我有这样的控制器,我假设用户可以通过以下方式访问它:www.abc.com/home/index/1或使用查询字符串www.abc.com/home/index/?id=1。我想为这个url显示404页:www.abc.com/home/index/?id=1。如何做到这一点
public HomeController : Controller {
public ActionResult Index(string id) {
}
}
在RouteConfig.RegisterRoutes方法中,这将使/home和/home/index显示404:
routes.MapRoute(
name: "Home",
url: "",
defaults: new { controller = "Home", action = "Index" });
此路由将允许/home/index/1,但对于/home/index/?id=1,它将为404:
这是ASP.NET MVC中非常基本的路由。我建议阅读一些文档以了解更多信息
routes.MapRoute(
name: "Home",
url: "home/index/{id}",
defaults: new { controller = "Home", action = "Index" });