返回JSON时找不到JavaScriptSerializer.cs

时间:2015-04-07 13:27:41

标签: javascript c# asp.net json asp.net-mvc

我正在尝试在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。

我尝试了以下步骤:

  1. 添加System.Web.Extensions。

  2. 在本地复制System.Web.Extensions(在Visual Studio 2013上的属性中)

  3. 删除&amp;重新添加System.Web.Extensions(以及清理和重建和关闭以及重新打开VS)。

  4. 将System.Web.Extensions.dll从Reference Assemblies文件夹复制到我项目的bin文件夹。

  5. 此外,我可以在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:

    如果我取消了我的断点并且跳过了错误的步骤......我停止了我的错误?代码运行得很好,让我在点“崩溃”之后点击的断点。所以这不是一个决议,但我想这是什么?如果您从谷歌的深处登陆此页面,请尝试移动您的断点。

0 个答案:

没有答案