【发布时间】:2017-03-17 20:51:14
【问题描述】:
我正在将 Json 从 Jquery 发送到动作控制器,但由于某种原因,我的动作控制器中没有正确接收 Json 字符串中的第一个和最后一个元素,似乎正在添加一个花括号作为最后一个元素的值,当第一个元素是可空字段或者它是 int 时,第一个元素始终为空,其值为 0。 这是我的 JQuery 代码:
$(function () {
$("#myButton").click(function () {
var student= JSON.stringify($("#myForm").serialize());
alert(student);
$.ajax({
type: 'post',
url: $("#myForm").data("url"),
data: JSON.stringify({ 'policy': student}),
success: //more code..
})
我正在使用警报来显示$("#myForm").serialize() 的值,并且在执行警报时这些值被正确设置。问题出在动作控制器的路上。这是警报消息显示的内容:
"first_field=7.5&aut_id=3456690&..........more info in here no
problem..........&birthday=&last_field="
对于json string,当动作控制器收到时,它会得到:first_field= null(is a nullable field in my Model)
还有last_field = "\\\"\"}"。它包含3个转义字符,所以我想接收的值是= \""}
应该发生什么???中间的所有其他值都被正确接收,只是边缘的值
这是我的动作控制器:
[HTTPPost]
public ActionResult EditStudent(Student student)
{
//some code...
}
【问题讨论】:
-
你不需要对任何东西进行字符串化,当然也不需要两次。只需使用
data: $("#myForm").serialize()) -
@StephenMuecke 现在可以使用了,谢谢。如果您想将其发布为答案,您可以这样做,我会选择它作为答案:)
标签: javascript jquery json asp.net-mvc