我在进行ajax调用以接收数据库对象时遇到了一些问题。我在视图中进行ajax调用,将视图中某个HTML元素的值传递给控制器中的方法,该方法使用该值搜索并返回现有数据记录。
我的ajax电话:
$.ajax({
url: "/MyController/MyFunction/",
data: {Value: myvalue},
type: 'GET',
success: function (result) {
//do something...
}
我的控制器方法:
Function MyFunction(Value as String) As MyClass
Dim record = SearchFunction(Value)
Return record
End Function
我的数据类:
Public Class MyClass
Property Name As String
Property Age As Integer
Property DOB As Date
End Class
我遇到的问题是,在调用中收到的'result'返回一个带有我的模型名称的字符串,即“MyClass”,即使控制器工作正常并且'record'成功设置为正确的数据记录。
我在搜索互联网后尝试了各种不同的潜在解决方案,包括ajax调用中的不同数据类型和不同的ajax调用,如$ .getJSON(),但到目前为止没有任何工作。
答案 0 :(得分:1)
在将对象还原给客户端之前,需要将对象转换为JSON。
return Json(record);
我现在无法测试,所以我不知道它是自动解析整个对象还是需要手动进行映射。
顺便说一句:还有一个 JsonResult 类型,您可能需要使用它而不是 ActionResult
编辑:我刚刚注意到你没有在那里使用ActionResult。我不懂VB,所以我不确定你的语法是否正确。您可能肯定会尝试返回JsonResult而不是字符串(这可能也是问题的一部分)。
Btw2:我会在你的ajax调用中使用POST:)