1

我的应用程序有以下设置:

routes.MapRoute("Default", 
                "{controller}/{action}/{idt}", 
                new { controller = "Home", 
                      action = "Index", 
                      idt = UrlParameter.Optional });

我在我的数据库/模型中为 idt 参数和主键使用整数的 GUID。

在我的应用程序的“主”菜单中,我有:

@Html.ActionLink("Create invoice", "Create", "Invoices")

如果我启动应用程序并查看此链接指向的路径,它是正确的:/Invoices/Create

但是,由于此路径也用于发票的编辑,如果我打开一个带有路径的页面/Invoices/Create/0eb262cc-a623-41f5-9b32-fd452691f426,然后查看“主”链接的路径,它指向/Invoices/Create/0eb262cc-a623-41f5-9b32-fd452691f426.

那是关于什么的?“固定”链接如何改变?有没有我在不知道的情况下在代码中做过的事情?但即使我这样做了,我也不明白为什么主链接会改变?它从哪里获得路径中的 GUID?

4

3 回答 3

1

由于 Route Collection 包含一个值,idt因此它将使用该值呈现 URL。

您可以将一个空白值传递给

@Html.ActionLink("Create invoice", "Create", "Invoices",new {idt=""})

我相信这应该有助于解决问题。

于 2012-07-23T15:39:58.753 回答
1

试试这个:

@Html.ActionLink("Create invoice", "Create", "Invoices", new {idt = ""}, new {})

这应该解决 length=8 的问题。

于 2012-07-23T16:33:38.670 回答
0

试试这个重载

@Html.ActionLink("Create invoice", "Create", "Invoices", null,null)
于 2012-07-23T16:37:18.133 回答