javascript - 使用Ajax调用接收数据记录时出现问题

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

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

相关文章:

javascript - 使用数据在angularjs中发送ajax请求

javascript - 未捕获( promise )错误 : Container is not defined

javascript - 3 个元素之间自动切换

javascript - jQuery 添加 html 到原始标题?

javascript - 更新 XML 数据时使用 ajax 刷新 DIV

javascript - 使用 AngularJS 和 Laravel 4 提交复选框值数组。复选框不检查(视觉上)

javascript - 删除具有子标题的 <td> 并制作子标题

javascript - 如何查找输入和变量是否相等以及是否相等重定向到其他文件?

javascript - 实时鼠标悬停事件

php - 如何获取文本中的所有链接(URL)?