我正在尝试在MVC中创建一个简单的图形。我正在使用Google的图形API,当我尝试在控制器中调用函数来获取数据时,我收到错误。
这是我的javascript:
jQuery.getJSON('/Home/LoadJSONData', function (data) {
var data = new google.visualization.DataTable(data);
var options = { 'title': 'Test Chart', 'width': 400, 'height': 300 };
var chart = new google.visualization.ScatterChart(document.getElementByID('MyDiv'));
chart2.Draw(data, options);
});
这是我正在调用的函数:
[HttpGet]
public JsonResult LoadJSONData()
{
//LoadData() returns a datatable from my database
DataTable _dt = LoadData();
//create a list of the models I want
List<MyModel> ModelList = new List<MyModel>();
foreach (DataRow _dr in _dt.Rows)
{
//Call the constructor using the datarow and add the new model to my list
ModelList.Add(new MyModel(_dr));
}
return Json(ModelList, JsonRequestBehavior.AllowGet);
}
当我运行我的代码时,我可以单步执行LoadJSONData()函数,当我跳过返回函数时出现错误:未找到JavaScriptSerializer.cs
以下是我在控制器中的内容:
using System.Web;
using System.Web.Script;
using System.Web.Script.Serialization;
我正在使用.NET 4.5。
我尝试了以下步骤:
添加System.Web.Extensions。
在本地复制System.Web.Extensions(在Visual Studio 2013上的属性中)
删除&amp;重新添加System.Web.Extensions(以及清理和重建和关闭以及重新打开VS)。
将System.Web.Extensions.dll从Reference Assemblies文件夹复制到我项目的bin文件夹。
此外,我可以在return语句之前将以下行添加到我的LoadJSONData()函数中:
JavaScriptSerializer js = new JavaScriptSerializer();
这编译并运行正常,我仍然在返回语句后得到相同的错误。
我对MVC很新,而且Javascript非常糟糕,所以我很可能会做一些根本错误的事情 - 但这对我来说似乎是正确的,而且我所有寻找此错误只会导致我摆弄系统。 Web.Extensions参考。
编辑:这是我的堆栈跟踪:
Locating source for 'f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs'. (No checksum.)
The file 'f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs' does not exist.
Looking in script documents for 'f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs'...
Looking in the projects for 'f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs'.
The file was not found in a project.
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\vccorlib\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\mfc\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\atl\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include'...
The debug source files settings for the active solution indicate that the debugger will not ask the user to find the file: f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs.
The debugger could not locate the source file 'f:\dd\ndp\fx\src\xsp\System\Extensions\Script\Serialization\JavaScriptSerializer.cs'.
哪个看起来不像堆栈跟踪呢?
编辑2:
如果我取消了我的断点并且跳过了错误的步骤......我停止了我的错误?代码运行得很好,让我在点“崩溃”之后点击的断点。所以这不是一个决议,但我想这是什么?如果您从谷歌的深处登陆此页面,请尝试移动您的断点。