【问题标题】:Make sure that the controller has a parameterless public constructor?确保控制器有一个无参数的公共构造函数?
【发布时间】:2015-06-10 22:17:05
【问题描述】:

我在本地运行时遇到了这个奇怪的问题,如果我点击一个链接到控制器 X,它可以工作,但是在将它发布到 windows azure 后,我在点击相同的链接时收到这个错误:

尝试创建类型控制器时出错 'Project.Controllers.ControllerX'。确保控制器有 一个无参数的公共构造函数。

将我带到该特定控制器的所有其他链接也是如此 有什么想法吗?

不确定我还能提供多少信息,因为这是我认为我可以暂缓提供的唯一信息。

不,它不是 API 控制器

感谢您阅读我的帖子并花时间帮助我!

【问题讨论】:

  • 你在使用DI(依赖注入)吗?
  • 我是一个毫无意识的人,我什至不知道那是什么:)
  • 尝试向控制器添加无参数构造函数,如public ControllerX(){ }
  • 试过但无济于事:(
  • 请编辑您的问题并为ControllerX类添加一些代码

标签: c# asp.net-mvc azure


【解决方案1】:

您可能错过了在某个类(用于控制器或控制器本身)中定义无参数构造器,在该类中定义了带参数的构造器。然后尝试实例化不带参数的类。

【讨论】:

  • 上课时不需要parameterless constructor。如果不存在会自动创建
  • 我认为它确实需要你能解释一下这些stackoverflow.com/questions/7230544/…
  • 只有在没有为该类定义构造函数时才会创建无参数构造函数。如果类已经在类中定义了带参数的构造函数,则不会自动创建无参数构造函数。
  • 好吧,我想我是想解释同样的事情。
  • 现在我也意识到他说当他试图点击该链接时会发生错误。这意味着这是一个运行时错误。如果他完全错过了一个无参数的构造函数,它会抛出编译时错误。因此,这不是解决此问题的方法
【解决方案2】:

感谢 Rahul Nikate,我发现这个问题似乎是在 controllerX 中的一个类构造函数的路径存在问题,像 Cijo V J 这样的接缝是正确的:)

【讨论】:

  • 那么你至少应该对那个人的回复投赞成票。
猜你喜欢
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多