jquery - 为什么它没有使用 jquery.post() 在 asp.net mvc 控制器中检索发布的数据
问题描述
我正在使用用 VB.NET 编写的 ASP.NET MVC Web 应用程序。我尝试使用 jQuery 将数据发送到我的控制器。
这是我的控制器代码
<HttpPost()>
Function GetData(p As DataManager) As JsonResult
'Dim user As New User
'user.user_name = puser.user_name
'user.isadmin = puser.is_admin
Dim x As New List(Of DataManager)
x.Add(p)
Return Json(p, JsonRequestBehavior.AllowGet)
End Function
那么这是我的 DataManager 类的数据模型
Public Class DataManager
Public user_name As String
Public is_admin As Boolean
End Class
这是我用于发送数据的 jQuery 代码
$("#btn-valid").click(function () {
var user = {
user_name: 'test',
is_admin: true
}
$.post("http://localhost:57069/Home/GetData/", user, function (data)
{
alert("data sent !!"+ data.user_name);
},'json');
来自 jQuery 的请求成功但问题在于响应我得到分配给我的 json 对象的空值
请帮忙 !
解决方案
经过一点测试,我相信你的问题与这个模型类的成员定义有关:
Public Class DataManager
Public user_name As String
Public is_admin As Boolean
End Class
这两个变量都声明为字段,并且与字段不同,当从 JSON 请求传递字符串值时,操作方法可能无法识别Boolean
该字段。String
我试图将类中的所有成员设置为带有关键字DataManager
的属性:Property
Public Class DataManager
Public Property user_name As String
Public Property is_admin As Boolean
End Class
然后data
在控制台检查期间响应包含此对象,表明字符串属性已正确分配:
data: {user_name: "test", is_admin: true}
因此,我得出结论,您需要字符串属性而不是模型类中的字段来传递字符串值。
工作示例:.NET Fiddle
推荐阅读
- docker - 保留旧的 docker-compose 容器直到下一个准备好
- javascript - React Redux - 使用 CRUD 的 Reducer - 最佳实践?
- angular - Karma 输入参数单元测试
- laravel - 断言模型不可搜索
- office-js - 将自定义 Outlook 插件移到左侧
- c# - C# - 按块上传文件 - 错误的最后一个块大小
- reverse-engineering - 是否有任何库可以连接到 Dota2 游戏服务器?
- sql - 将一条记录分成两条记录的sql
- python - TypeError:只有长度为 1 的数组可以转换为 Python 标量 Python Array 和 Numpy
- java - UCAExc:::4.0.4 用户缺少权限或找不到对象:TBLUSERS