首页 > 解决方案 > 我的 C# 控制器中的参数从 AJAX 调用读取为 null

问题描述

我正在尝试通过复选框从用户那里获取输入并将其存储在我的 SQL 数据库中的表中,我已经正确创建了所有链接,并且我的 AJAX 后调用运行良好,因为我能够在我的数据库中接收信息。问题是在我的控制器中接收到的参数正在接收一个空值,该值在我的表中存储一个空值,我知道我的复选框正在提取正确的信息,因为我事先打印了它,但我觉得我的 AJAX 设置可能不是正确地把它串起来。

$("#submitButton").click(function() {
  var results = {};
  $questions = $('#optionData');

  for (i = 1; i < 6; i++) {
    if ($questions.find('#option' + i).prop('checked')) {
      results['option' + i] = $questions.find('#option' + i).val();
    }
    newResult = JSON.stringify(results)
  };

  console.log(newResult);

  $.ajax({
    url: "/Home/SaveData",
    type: "POST",
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: (newResult),
    success: function(data) {
      if (data == null) {
        alert("Something went wrong");
      }
    },
    failure: function(data) {
      alert(data.dataText);
    },
    error: function(data) {
      alert(data.dataText);
    }
  });
});
[HttpPost]
public ActionResult SaveData(string Options)
{
  dataInsertion dataInsertion = new dataInsertion
  {
    // questionID = object.QuestionId,
    options = Options, 
    // },
    // companyID = object.companyID
  };

  try
  {
    if (ModelState.IsValid)
    {
      DB.dataInsertions.Add(dataInsertion);
      DB.SaveChanges();
      // RedirectToAction("Home");
    }
  }
  catch (Exception e)
  {
    Console.WriteLine("error" + e);
  }
  return Json(new { sucess = "true" });
}

标签: c#jqueryajax

解决方案


推荐阅读