gpt4 book ai didi

c# - 自定义路由 ASP.NET MVC

转载 作者:行者123 更新时间:2023-12-04 10:51:07 25 4
gpt4 key购买 nike

所以我想让我的 URL 看起来像这样:
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 View 工作正常,但我的 AccountController没有。

当去example.com/account我收到一条错误消息:

The resource cannot be found.



这是我的 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

最佳答案

路线设置需要更加明确。

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;

routes.MapRoute(
name: "Account",
url: "account/{action}/{id}",
defaults: new { controller = "Account", action = "Account", id = UrlParameter.Optional }
);

routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}

关于c# - 自定义路由 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59467536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com