gpt4 book ai didi

c# - ASP.NET MVC 4 一些路由不工作

转载 作者:行者123 更新时间:2023-11-30 18:33:31 29 4
gpt4 key购买 nike

路线:

routes.MapRoute(
"Customer_widget",
"customer/widget/{action}/{id}",
new { controller = "Customer_Widget", id = UrlParameter.Optional });

测试 URL1:(有效)customer/widget/contact_list/1-1004-SC-0-0-0-0-0-0-Supplier-Supplier----0-0-0-0-Year-Calendar-0-Home- 0

测试 URL2:(不起作用)

customer/widget/contact_list/1-1004-SC-0-0-0-0-0-0-Supplier-Supplier--6%2f1%2f2013-7%2f6%2f2013--0-0-0-0-Year-Calendar-0-Home-0  (does not work) 

我测试了上面的两个 URL。第一个 URL 转到正确的位置。但是第二个网址迷路了......我不知道是什么原因造成的...我假设白天部分 6%2f1%2f2013-7%2f6%2f2013 会导致一些问题,但我不确定那是什么。

客户 Controller

 public ActionResult Index(string id = null)
{
string temp = "~/customer/widget/contact_list/" + this.objURL.ToString();
return Redirect("~/customer/widget/contact_list/" + this.objURL.ToString());
}

Customer_WidgetController

  public ActionResult Contact_list(string id = null)
{
return PartialView("_contact_list",Customer_Widget.Contact_list.Load(id, ref errors));
}

流向 CustomerController ->(通过 map 路由)Customer_WidgetController

最佳答案

这都是因为编码的斜杠“%2f”符号对应于“/”。因为这个你的网址

customer/widget/contact_list/1-1004-SC-0-0-0-0-0-0-Supplier-Supplier--6%2f1%2f2013-7%2f6%2f2013--0-0-0-0-Year-Calendar-0-Home-0

分为 8 个部分:

  1. 客户
  2. 小工具
  3. 联系人列表
  4. 1-1004-SC-0-0-0-0-0-0-供应商-供应商--6
  5. 1
  6. 2013-7
  7. 6
  8. 2013--0-0-0-0-Year-Calendar-0-Home-0

但在您的 route 您期望 4。

要定义段的可变计数,您可以像这样使用星号 (*):

routes.MapRoute(
"Customer_widget",
"customer/widget/{action}/{*id}",
new { controller = "Customer_Widget", id = UrlParameter.Optional });

路由系统按顺序检查路由。所以你需要小心这个并尽可能低地定义这样的路由,因为它可以捕获你不想用这条路由捕获的请求。例如,如果以下路由将在您的系统中定义在上面的路由之后,它将永远不会被捕获:

routes.MapRoute(
"Customer_widget",
"customer/widget/{action}/{lang}/{*id}",
new { controller = "Customer_Widget", lang = "en", id = UrlParameter.Optional }
new { lang = "en|es|ru"});

关于c# - ASP.NET MVC 4 一些路由不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509237/

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