【问题标题】:a public action method was not found on controller, while it really is there在控制器上找不到公共操作方法,但它确实存在
【发布时间】:2015-03-02 14:16:49
【问题描述】:

我的应用程序遇到了这个非常奇怪的问题。在我的一个控制器中,我有一个带有 HttpGETHttpPOST 注释的操作。它们之间的区别在于HttpPOST 操作接收模型参数。其他参数是字符串和可为空的布尔值。当我在我的应用程序的错误日志中挖掘时,我发现了以下异常,a public action method was not found on controller。如果您对该 URL 发出 GET 请求,即使您不传递任何参数,也会返回视图,POST 也是如此。我真的想不出会发生什么。问题就在于这个动作。会不会是出版引起的?我的意思是我使用 web deploy 来发布网站,每周进行两次重大更改,一天进行两次次要更改。但是我一天内会遇到 10 次这个异常,甚至更多。应用程序的健康状况确实受到了影响。我得到主要的 CPU 使用率跳跃。我该怎么做才能解决这个问题?

【问题讨论】:

  • 你是说同一个控制器方法(动作)用GETPOST标记?我以前从未见过这样做过。如果您的应用程序运行状况不佳,我会考虑将它们设为单独的控制器方法(MVC 中的不同操作)
  • 当然,这是两种不同的方法。相同的控制器和不同的方法。一个标记为 GET,另一个标记为 POST。

标签: c# asp.net-mvc iis webdeploy


【解决方案1】:

您说 get 具有可为空的布尔值。您是否将空值传递给 get 请求中的值?否则将无法正常工作。

例如

public ActionResult GetMyData(string name, bool? isItTrue){
    return View()
}

即使isItTruenull,您的请求也必须是这样的

http://localhost/controller/getmydata?name=me&isItTrue=

【讨论】:

  • 让我仔细检查一下那个案例。
猜你喜欢
  • 2012-05-31
  • 2013-06-01
  • 2013-05-15
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多