JsonResult异常的问题

时间:2009-12-08 13:41:38

标签: asp.net-mvc

我有控制器动作,返回JsonResult并被jquery ajax get请求使用。一切都在我的开发机器上运行良好,但是当复制到生产主机上时,我在最后一行控制器操作上得到以下异常:

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult Single(int UNIQUE_NO) {
  ...
  return Json(data, JsonRequestBehavior.AllowGet);  // < here exception is thrown
}

找不到方法:'System.Web.Mvc.JsonResult System.Web.Mvc.Controller.Json(System.Object,System.Web.Mvc.JsonRequestBehavior)'。

ELHAM正在捕获异常。

平台:ASP.NET MVC 2 Beta

应用程序附带的Dll(复制本地:true): Microsoft.Web.Mvc,MvcContrib,MvcContrib.FluentHtml,MvcContrib.TestHelper,Rhino.Mocks,System.Web.Mvc,System.Web.Routing

这里发生了什么?什么/我应该在哪里寻找这个? (如上所述,我在我的开发机器上没有得到这个异常,其中json结果对象按预期生成并返回给调用者)

这是调用堆栈(ELMAH):

System.MissingMethodException:找不到方法:'System.Web.Mvc.JsonResult System.Web.Mvc.Controller.Json(System.Object,System.Web.Mvc.JsonRequestBehavior)'。    在NN_AccessToWeb_MVC2.Controllers.HomeController.Single(Int32 UNIQUE_NO)    在lambda_method(ExecutionScope,ControllerBase,Object [])    在System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase控制器,Object []参数)    在System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2个参数)    在System.Web.Mvc.ControllerActionInvoker。&lt;&gt; c__DisplayClassa.b__7()    在System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter过滤器,ActionExecutingContext preContext,Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 1过滤器,ActionDescriptor actionDescriptor,IDictionary`2参数)    在System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)

2 个答案:

答案 0 :(得分:2)

尝试返回新的JsonResult

return new JsonResult {
    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
    Data = /* you model goes here */,
    ContentType = "application/json",
    ContentEncoding = Encoding.UTF8
};

答案 1 :(得分:0)

return Json(data, "application/json", Encoding.UTF8, JsonRequestBehavior.AllowGet);