我有以下路线(这是我的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吗?我如何得到漂亮的网址?
答案 0 :(得分:1)
我唯一能想到的就是它回到默认路线,我做了你的路线和html.ActionLink的复制粘贴,它完美地为我显示它像“/Order.aspx / DisplayAdmin / 39068760/45456“,如果路由和操作链接中的命名不一样,我确实会复制相同的错误。
答案 1 :(得分:0)
使用具有RouteValueDictionary参数的ActionLink的重载。
看来你正在使用带有“object”参数的重载,它会变成一个可行的,但不是那么干净的url。