0

我曾经保留默认路由,但一次冲突导致我将默认参数更改idparamid.

通常,我在视图中使用这样的代码:

@Url.Action("Edit", "Suivis", new {o.ID})

这在控制器中:

public ActionResult Edit(int id) { ... }

但它不再起作用了,它迫使我使用:

@Url.Action("Edit", "Suivis", new {paramid = o.ID})

这是我的控制器中的代码:

public ActionResult Edit(int paramidid) { ... }

我的问题是:为什么我现在必须在视图中指定参数名称?

4

1 回答 1

1

在您的原始操作中:

@Url.Action("Edit", "Suivis", new {o.ID})

正在创建具有相同名称 (ID) 的匿名类型。由于您必须将路由所期望的 ID 参数更改为 paramid - 当您尝试传入 o.ID(转换为新的 {ID = o.ID})时,路由不匹配,因为它是寻找帕拉米德。

如果它是视图模型,则可以将属性更改为 paramid -

@Url.Action("Edit", "Suivis", new {o.paramid})

它会再次起作用 - 但这可能比它的价值更麻烦。

于 2012-10-12T15:00:31.037 回答