自定义路由ASP.NET MVC
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义路由ASP.NET MVC相关的知识,希望对你有一定的参考价值。
所以我想让我的网址看起来像这样:
[example.com
,example.com/contact
,example.com/sign-up
,example.com/account
而不是默认的MVC方式,如下所示:
[example.com
,example.com/Home/Contact
,example.com/Account/SignUp
,example.com/Account/Account
所有HomeController
视图工作正常,但我的AccountController
无效。
[去example.com/account
时出现错误,说:
找不到资源。
这是我的RouteConfig
:
public static void RegisterRoutes(RouteCollection routes)
routes.IgnoreRoute("resource.axd/*pathInfo");
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "action/id",
defaults: new controller = "Home", action = "Index", id = UrlParameter.Optional
);
routes.MapRoute(
name: "Account",
url: "action/id",
defaults: new controller = "Account", action = "Account", id = UrlParameter.Optional
);
并且因为我想将Account/SignUp
视图显示为/sign-up
,所以在AccountController
中添加了一些自定义代码。
// GET: Account
public ActionResult Account()
return View();
// GET: Sign Up
[ActionName("Sign-Up")]
public ActionResult SignUp()
return View("SignUp");
/account
或/account/account
两种格式都给了我与先前相同的错误。但是/about
,/contact
等不。
感谢您的任何帮助,谢谢!
P.S,这是我的文件夹结构:
> Views
-> Account
--> Account.cshtml
--> SignUp.cshtml
-> Home
--> About.cshtml
--> Contact.cshtml
--> Index.cshtml
答案
也许自定义路由应该在默认路由之前
以上是关于自定义路由ASP.NET MVC的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC:在不影响性能的情况下路由自定义 slug
在 ASP.NET 5 (vNext) MVC 6 中实现自定义路由器
ASP.Net MVC 2 RC2:当所有可选参数为空时,自定义路由返回 404