1

我在进行 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

我遇到的问题是调用中收到的“结果”返回一个带有我的模型名称的字符串,即“MyClass”,即使控制器工作正常并且“记录”已成功设置为正确的数据记录。

在搜索互联网后,我尝试了各种不同的潜在解决方案,包括 ajax 调用中的不同数据类型以及 $.getJSON() 等不同的 ajax 调用,但到目前为止没有任何效果。

4

1 回答 1

1

在将对象返回给客户端之前,您需要将其转换为 JSON。

return Json(record);

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

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

顺便说一句:我会在你的 ajax 调用中使用 POST :)

于 2013-04-11T15:18:22.650 回答