【发布时间】:2018-06-05 17:57:39
【问题描述】:
我有一个对象数组,我使用 ajax 从视图传递到控制器。 数组数据为:
我的 ActionMethod 是:
public JsonResult AddQuestionsToStep(long stepId, string questionText, string questionType, string correctAnswer = "", List<QuestionOption> choices = null)
我正在接收其他变量数据和选择数组的计数,但选择数组中的数据未映射。即,在客户端具有值的 OptionName 在服务器端为空。我做错了什么?
【问题讨论】:
-
你能发布你如何构建选择对象的代码吗?从您的屏幕截图看来, OptionId 包含函数而不是字符串
-
我正在使用 knockoutJs。即使
OptionId是一个函数,它不应该映射OptionName属性吗? -
实际上,您正在尝试发送 javascript 对象数组,我认为您的后端无论如何都无法处理。尝试将其作为 JSON.stringify(choices) 发送并在后端解析它
-
当我发送
JSON.stringify(choices)时,它甚至没有收到List<QuestionOption> choices参数中的计数。让我试试动态JObject.Parse(choice); -
是的,因为您正在获取对象数组的字符串表示形式。在您的原始代码中,您收到计数,因为您正在发送对象数组,但它们都是未定义的,因为您无法发布 javascript 对象数组。
标签: jquery ajax asp.net-mvc knockout.js