我有控制器动作,返回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)
答案 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);