技术背景 - 我们使用:jQuery的AJAX调用ASP.NET MVC控制器返回一个MediaTypeFormatter例外
1)asp.net 4.5与VS2012 2)迪朗达尔JS构建单页,应用程序(的SPA )。 3)Breeze JS查询数据。
现在,在我的jQuery Ajax调用,我打电话到微风的Web API控制器如下:
jsonData.push({
"nodeType": vm.nodeType,
"nodeDescription": vm.nodeDescription,
"NodeDefs": ds.data() // ds dataset is coming from a grid
});
var jsonDataStr = JSON.stringify(jsonData); CONVERT DATA TO JSON
var jq = $.ajax({
url: '/api/breeze/UpdateNode/',
type: "PUT",
dataType: "json",
data:jsonDataStr,
async: false,
});
和我的控制器看起来像这样:
[HttpPut]
public SaveResult UpdateNode(JObject saveBundle)
{
SaveResult saved = new SaveResult();
return saved;
}
但是我越来越从我的jQuery失败事件返回以下异常:
“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为'application'的内容读取'JObject'类型的对象上/ X WWW的窗体-urlencoded”。
所以我的主要问题是:如何使用正确的JSON数据成功调用我的Breeze API控制器?如果我在我的jquery ajax调用中指定类型:“STRING”或“JSON”,在我的c#Controller方法中将我的参数类型定义为STRING,则调用可以正常工作。不过,理想情况下,我想将此数据对象作为JSON传递,而我的控制器应该正确处理它。
谢谢先进。
鲍勃
感谢您的文档。有帮助的提示。 –