【问题标题】:MVC - The call is ambiguous between the following methods or propertiesMVC - 以下方法或属性之间的调用不明确
【发布时间】:2012-03-22 00:53:39
【问题描述】:

我无法弄清楚为什么会出现此错误。我的项目中只有一个类和一种方法,如下所示:

public static class Extensions
{
    public static string Chop(this string s, int length)
    {
        ...
        return "";
    }
}

我在我的视图中这样称呼它:@item.PostContent.Chop(20)
它给了我一个编译器错误:

The call is ambiguous between the following methods or properties: 'Extensions.Chop(string, int)' and 'Extensions.Chop(string, int)'

感谢任何帮助。谢谢。

【问题讨论】:

  • 如果方法是静态的,你不必在类名上调用它吗? @item.PostContent.Extensions.Chop(20)?
  • 我不这么认为。我使用这篇文章作为参考:mikesdotnetting.com/Article/137/…。无论哪种方式,编译器都不喜欢那样...
  • 在文章中,他从他的角度这样称呼代码:ViewData["myString"].ToString().Chop(50),这对您的情况不起作用吗?

标签: model-view-controller asp.net-mvc-views


【解决方案1】:

我猜您已将 Extensions 类文件放在 App_Code 文件夹中,对吗?如果是这样,请将其移出 App_Code 并删除该文件夹。 App_Code 在默认情况下创建为 Web 应用程序项目而不是网站项目的 MVC 应用程序中没有位置。

Web 应用程序在构建时编译为 dll,App_Code 中的任何内容也在运行时编译为单独的 dll。因此有两种方法和歧义。

【讨论】:

  • 谢谢!是的,我确实在 App_Code 中有它。感谢您的解释。现在运行良好。
猜你喜欢
  • 1970-01-01
  • 2014-11-11
  • 2012-02-09
  • 2011-04-10
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多