【发布时间】:2013-02-19 16:35:42
【问题描述】:
我正在尝试将 jQuery validation engine 与我的 MVC 项目集成以执行内联验证。我在 jQuery 表单中有一个字段,它正在调用 MVC 控制器并期望 JSON 响应。根据插件作者写的this article...
现在这会将 ajax 中的字段发送到定义的 url,并等待 响应,响应需要是一个 json 编码的数组 遵循以下语法:["id1", boolean status].
所以在 php 中你会这样做: echo json_encode($arrayToJs);
如何在 ASP.NET MVC4 中实现这一点?
我当前的控制器看起来像这样。
public JsonResult FunctionName(string fieldValue)
{
return Json((new { foo = "bar", baz = "Blech" }), JsonRequestBehavior.AllowGet);
}
响应正文显示它返回如下所示的键值对
{"foo":"bar","baz":"Blech"}
如何以预期格式返回 JSON?
【问题讨论】:
-
["id1", boolean status]不是有效的 JSON。["id1", "boolean status"]将是有效的 JSON。目前还不清楚您希望{"foo":"bar","baz":"Blech"}看起来像什么。 -
澄清一下,您在顶部显示的是一个 JSON 数组(无效数组)。您在底部显示的是一个 JSON 对象。
-
无效的JSON格式直接引自文章。根据文章,我需要控制器返回一个数组。
-
您可以在 JSON 数组中混合类型,但布尔状态是两个词。即使一个或两个是某种类型的值,一个 json 数组元素也不能由两个东西组成,在这种情况下,布尔值和状态。例如,如果 booleanStatus 是一个具有布尔值的变量,那将是一个有效的 JSON 数组元素。所以,无论文章是否引用,都是无效的 JSON。
-
现在很明显,文章作者使用了无效语法。他应该简单地将“布尔状态”替换为真或假。下面 Rob 的回答从我的控制器中得到了适当的响应。
标签: json asp.net-mvc-4 controller jquery-validation-engine