我在进行 ajax 调用以接收数据库对象时遇到一些问题。我在 View 中进行 ajax 调用,将 View 中的 HTML 元素之一的值传递到 Controller 中的方法,该方法使用该值来搜索并返回现有数据记录。
我的ajax调用:
$.ajax({
url: "/MyController/MyFunction/",
data: {Value: myvalue},
type: 'GET',
success: function (result) {
//do something...
}
我的 Controller 方法:
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
我遇到的问题是,调用中收到的“结果”返回一个带有我的模型名称的字符串,即“MyClass”,即使 Controller 工作正常并且“记录”已成功设置为正确的数据记录一下。
在搜索互联网后,我尝试了各种不同的潜在解决方案,包括 ajax 调用中的不同数据类型和 $.getJSON() 等不同的 ajax 调用,但到目前为止没有任何效果。
最佳答案
在将对象返回给客户端之前,您需要将其转换为 JSON。
return Json(record);
我现在无法测试它,所以我不知道它是否会自动解析整个对象,或者您需要手动进行映射。
顺便说一句:您可能还需要使用 JsonResult 类型来代替 ActionResult
编辑:我刚刚注意到你没有在那里使用 ActionResult 。我不懂VB,所以我不确定你的语法是否正确。您肯定会尝试返回 JsonResult 而不是字符串(这也可能是问题的一部分)。
顺便说一句:我会在你的 ajax 调用中使用 POST :)
关于javascript - 使用Ajax调用接收数据记录时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15952494/