actionlink无法解析与路线相关的网址

时间:2010-07-06 08:40:50

标签: asp.net-mvc-2

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

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

如果我导航到

“订单/ DisplayAdmin / 2/79000180”它正确解析

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

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

显示

/Order.aspx/DisplayAdmin/39068760?companyId=0

也可以,但不是那么漂亮:)。

这是我的控制器方法

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

我以错误的方式调用ActionLink吗?我如何得到漂亮的网址?

2 个答案:

答案 0 :(得分:1)

我唯一能想到的就是它回到默认路线,我做了你的路线和html.ActionLink的复制粘贴,它完美地为我显示它像“/Order.aspx / DisplayAdmin / 39068760/45456“,如果路由和操作链接中的命名不一样,我确实会复制相同的错误。

答案 1 :(得分:0)

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

看来你正在使用带有“object”参数的重载,它会变成一个可行的,但不是那么干净的url。