【问题标题】:Changing routing's default parameter name更改路由的默认参数名称
【发布时间】:2012-10-12 14:45:35
【问题描述】:

我之前一直保持默认路由,但是一次冲突导致我将默认参数id改为paramid

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

@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) { ... }

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

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 routing


    【解决方案1】:

    在你原来的动作中:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多