您好,我正在通过vb.net使用网络应用mvc 我尝试将带有jQuery的数据发送到asp控制器 这是我的控制器代码
<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对象的空值
请帮助!
答案 0 :(得分:1)
经过一些测试,我相信您的问题与该模型类的成员定义有关:
Public Class DataManager
Public user_name As String
Public is_admin As Boolean
End Class
两个变量都声明为字段,并且与Boolean
字段不同,当从JSON请求传递字符串值时,action方法可能无法识别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