无法将jQuery post数据发送到MVC控制器

时间:2015-06-21 18:10:15

标签: c# jquery asp.net-mvc

我尝试过在谷歌找到的解决方案,但没有任何帮助。 我的ajax功能:

$.ajax({
        type: "post",
        url: apiEndpoint + "/CreateExercise", 
        data: JSON.stringify(data),
        datatype: "json",
        contentType: "application/json",
        success: function (result) {
            console.log(result);

        },
        error: function (xhr, status, p3, p4) {
            var err = "Error " + " " + status + " " + p3 + " " + p4;
            if (xhr.responseText && xhr.responseText[0] === "{") {
                err = JSON.parse(xhr.responseText).Message;
            }
            console.log(err);
        }
    });

MVC控制器:

public ActionResult CreateExercise(string sessionId, Exercise ExerciseCreateInfo)

我要发送的数据:

data.sessionId =  sessionId;
    data.ExerciseCreateInfo = {};
    data.ExerciseCreateInfo.IsVisible = true;
    data.ExerciseCreateInfo.SimilarityNorm = $("#numSimilarityScore").val();
    data.ExerciseCreateInfo.TypeId = $("#selectTaskType option:selected").val();
    data.ExerciseCreateInfo.Name = $("#textTaskName").val();
    data.ExerciseCreateInfo.Difficulty = $("#numDifficulty").val();
    data.ExerciseCreateInfo.MarkPoints = $("#numPoints").val();
    data.ExerciseCreateInfo.Question = tinyMCE.get("editorTask").getContent();
    data.ExerciseCreateInfo.Hint = tinyMCE.get("editorHint").getContent();
    data.ExerciseCreateInfo.Explanation = tinyMCE.get("editorExpenation").getContent();
    data.ExerciseCreateInfo.Fields = {};

2 个答案:

答案 0 :(得分:0)

抱歉,编写MVC Controller的人使用了错误的命名空间。现在一切都很好。谢谢你的帮助。

答案 1 :(得分:0)

您可以通过多种方式将数据发送到控制器: 在此示例中,您可以使用3种方式将数据发送到控制器:

  1. Ajax.BeginForm
  2. 模型
  3. 视图模型
  4. Jquery中的Ajax
  5. 的FormCollection
  6. 定义输入
  7. ...
  8. Download Sample.