gpt4 book ai didi

asp.net-mvc-4 - 带有 Id 和索引操作的 MVC4 路由

转载 作者:行者123 更新时间:2023-12-02 07:38:35 24 4
gpt4 key购买 nike

我正在尝试完成以下操作并收到 #2 的“找不到资源”错误。假设是因为路由配置不正确。

所需的网址:

1) domain.com/Customer

2) domain.com/Customer/1 *不起作用

3) domain.com/Customer/All

public ActionResult Index(int? id)
{
var viewModel = new CustomerViewModel();

if (!id.HasValue)
id = 1; // ToDo: Current Logged In Customer Id

viewModel.Load(id.Value);

return View(viewModel);
}
public ActionResult All()
{
return View(CustomerModel.All());
}

我的路由配置有默认路由设置,我尝试添加额外的路由无济于事。

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

我已经排除了设置新路线的尝试,因为它不起作用。

最佳答案

您的路由将正常化为 domain.com/Customer/Index/1。当您有路由的后续部分时,您不能仅仅因为它的值将是默认值而消除较早的组件。在这种情况下,它正在寻找一个它找不到的名为“1”的 Action

编辑:

如果您想要的路由是 domain.com/Customer/ID,那么您可以将这样的路由添加到您的路由表中:

routes.MapRoute(
name: "CustomerAll",
url: "Customer/All",
defaults: new { controller = "Customer", action = "All" }
);
routes.MapRoute(
name: "CustomerByID",
url: "Customer/{id}",
defaults: new { controller = "Customer", action = "Index" }
);

这些更具体的路线应该在您的默认路线之前。

关于asp.net-mvc-4 - 带有 Id 和索引操作的 MVC4 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714320/

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