2009-12-08 64 views
3

我有控制器操作返回JsonResult並被jquery ajax get請求使用。一切運作良好以及我的我的開發機器上,但是當生產複製主辦我得到異常下面的最後一行控制器操作:找不到JsonResult異常的問題

[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,系統。 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在System.Web.Mvc.ActionMethodDispatcher.Execute在System.Web程序(ExecutionScope,ControllerBase,對象[]) (ControllerBase控制器,對象[]參數) .Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker。 <> c__DisplayClassa.b__7() 在System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter濾波器,ActionExecutingContext preContext,函數功能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,字符串actionName)

+0

你有沒有找到一個解決這個?這是一個非常有趣的例外,你有... – 2012-12-21 17:00:29

回答

2

嘗試返回一個新JsonResult

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

Isnt Json(data,JsonRequestBehavior.AllowGet)已經JsonResult? – dzolnjan 2009-12-08 13:55:17

+0

是。它是一個像View()這樣的助手,它是ViewResult的新幫手。也許你沒有包含正確的命名空間? – roosteronacid 2009-12-08 13:57:58

+0

拋出類似異常> System.MissingMethodException 未找到方法:'Void System.Web.Mvc.JsonResult.set_JsonRequestBehavior(System.Web.Mvc.JsonRequestBehavior)'。< 哪些命名空間可以丟失? – dzolnjan 2009-12-08 14:05:43

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

return Json(YOURDATA),「application/json」 ,Encoding.UTF8,JsonRequestBehavior.AllowGet); ITS WORK WOW – Amirkhan 2010-01-06 11:40:21