gpt4 book ai didi

c# - 尽管我绘制了路线,但仍然收到 404

转载 作者:行者123 更新时间:2023-12-02 09:22:39 25 4
gpt4 key购买 nike

我一直在处理一些有关路线的问题。我已经定义了路线,但我不断收到 404。以下是路线:

routes.MapRoute(
name: "Default",
url: "{controller}",
defaults: new { controller = "Login", action = "Login" }
);

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

routes.MapRoute(
name: "Calendar",
url: "{controller}/{action}",
defaults: new { controller = "Calendar", action = "Index" }
);

routes.MapRoute(
name: "Act",
url: "{controller}",
defaults: new { controller = "Act", action = "New" }
);

localhost:51081/login works!
localhost:51081/Home/25.04.2013 works!
localhost:51081/act doesnt work!
localhost:51081/calendar/index doesnt work!

这里“登录”和“主页”有效,但“日历”和“操作”无效。当我将“日历”映射移动到顶部时,“主页”映射不起作用。你如何映射你的页面?

基本上我不希望操作名称出现在网址上,例如:http://localhost:51081/Home/Home/25.04.2013。我希望看到它像http://localhost:51081/Home/25.04.2013 或 http://localhost:51081/calendar

最佳答案

就像 @MarcGravell 所说:您只需为异常(exception)情况添加特殊规则

在您的情况下,日历和主页的路线是相同的。您可以通过将 {controller} 替换为 Home 来更具体地映射您的路线,因为该路线不是动态的并且实际上是一个异常(exception)(它忽略了操作)

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

行动与日历相同,因此您不需要两条路线。只需调用 Act/New 而不是仅调用 Act。

对于默认使用:

routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Login", action = "Login" }
);

并将其放在偏离路线的底部。

关于c# - 尽管我绘制了路线,但仍然收到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216606/

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