我正在使用Asp.net Mvc 5和C#。
我想禁用项目中的默认路由。我的地图路线如;
routes.MapRoute(name: "News",
url: "haberler",
defaults: new { controller = "News", action = "Index"});
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
当用户访问我网站的新闻页面时,它就像;
www.domain.com/haberler
但用户也可以访问以下新闻页面;
www.domain.com/news
我想删除"/news"
或直接使用seo友好的网址; " /哈伯勒"
那么如何禁用默认路由(Controller-Name-Convension)
路由?
答案 0 :(得分:0)
在MVC中,惯例是将URL映射到特定Action
上的特定Controller
。删除默认路由以禁用默认约定:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 1 :(得分:0)
而不是删除"默认" route,你可以添加一个控制器约束
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { controller = @"(Account|Manage|Home)" }
);
像这样,/news
将返回404 Not Found。
答案 2 :(得分:0)
class QuizScoreView(TemplateView):
template_name = "quiz_score.html"
def quiz_score(self, request):
# Quiz.objects.create(username= ,score= )
print("Score: "+request.body)
在您的任何路线中都不匹配,因此会引发错误。
答案 3 :(得分:0)
尝试使用此
删除.element
希望这会对你有所帮助。