自定义路由ASP.NET MVC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义路由ASP.NET MVC相关的知识,希望对你有一定的参考价值。

所以我想让我的网址看起来像这样:

[example.comexample.com/contactexample.com/sign-upexample.com/account

而不是默认的MVC方式,如下所示:

[example.comexample.com/Home/Contactexample.com/Account/SignUpexample.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

ASP.NET MVC:在不影响性能的情况下路由自定义 slug

在 ASP.NET 5 (vNext) MVC 6 中实现自定义路由器

ASP.Net MVC 2 RC2:当所有可选参数为空时,自定义路由返回 404

asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRouteConstraint约束

ASP.NET Web Api 路由自定义