使用Ajax调用接收数据记录的问题

时间:2013-04-11 15:14:19

标签: javascript jquery ajax vb.net asp.net-mvc-4

我在进行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(),但到目前为止没有任何工作。

1 个答案:

答案 0 :(得分:1)

在将对象还原给客户端之前,需要将对象转换为JSON。

return Json(record);

我现在无法测试,所以我不知道它是自动解析整个对象还是需要手动进行映射。

顺便说一句:还有一个 JsonResult 类型,您可能需要使用它而不是 ActionResult
编辑:我刚刚注意到你没有在那里使用ActionResult。我不懂VB,所以我不确定你的语法是否正确。您可能肯定会尝试返回JsonResult而不是字符串(这可能也是问题的一部分)。

Btw2:我会在你的ajax调用中使用POST:)