【问题标题】:Why am I get AmbiguousMatchException?为什么我会得到 AmbiguousMatchException?
【发布时间】:2013-10-11 13:32:52
【问题描述】:

使用 ASP.NET MVC 4,我在同一个控制器中有两个 Index 方法,但具有不同的签名。

    public ActionResult Index()
    {
        //...
    }

    public ActionResult Index(ManageOvertimesViewModel model)
    {
        //...
    }

我不明白为什么会出现此错误。 (如果我给出一个HttpPost 属性,那么它可能会起作用,但我不明白为什么它不起作用。)

【问题讨论】:

标签: c# asp.net-mvc-4 overloading


【解决方案1】:

我认为,你不能让 2 个 ActionResult 响应同一个 HTTP 操作,主要是因为:

如果你得到一个空参数的 HTTP GET,框架会选择什么动作? 第一个(没有模型绑定)还是第二个(有空模型绑定)?如果你真的考虑一下,仅仅基于参数并不是那么容易,它可能会导致不想要的结果。

【讨论】:

  • 是的,这可能是我接受它的原因,但如果我有两个索引并且第一个没有参数,第二个有一个值类型的参数,它的工作方式相同'不能为空。
  • 您是否正在对第二个索引操作进行修改?如果不是,也许您只需要一个带有模型的索引操作(假设它用于过滤并且逻辑没有太大差异)
猜你喜欢
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多