代码之家  ›  专栏  ›  技术社区  ›  frosty

ActionLink未解析与路由相关的URL

  •  1
  • frosty  · 技术社区  · 16 年前

    我有以下路线(这是我的global.asax中的第一条)

        routes.MapRoute(
        "AdminCompany",                                              // Route name
        "{controller}.aspx/{action}/{companyId}/{id}",                           // URL with parameters
         new { controller = "Home", action = "Index", companyId = "", id = "" }  // Parameter defaults
        );
    

    如果我导航到

    “order/displayadmin/2/79000180”正确解析

    但是,如果我执行以下操作

    Html.ActionLink("View", "DisplayAdmin", new {companyId = Model.CompanyId, id = order.OrderNumber }, new { @class = "button add" })
    

    它显示

    /order.aspx/displayadmin/39068760?公司ID=0

    这也行,但不太漂亮:)

    这是我的控制器方法

       public ActionResult DisplayAdmin(int companyId, [DefaultValue(0)]int id, [DefaultValue(0)] int orderItemStatusId)
            {
                var viewModel = DisplayAdminViewModel(companyId, id, _statusResponses);
                return View(viewModel);
            }
    

    我打电话给ActionLink的方式不对吗?如何获取好的URL?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Joakim    16 年前

    我能想到的唯一一件事就是它回到了默认的路径,我复制粘贴了你的路径和html.actionlink,它非常适合我显示像“/order.aspx/displayadmin/39068760/45456”,我复制了相同的错误,就像你在NAM在路线和动作链接中,ing是不一样的。

        2
  •  0
  •   a7drew    16 年前

    使用具有RouteValueDictionary参数的ActionLink的重载。

    似乎您当前正在使用带有“object”参数的重载,它将成为一个可操作的,但不是干净的URL。