2015-06-21 111 views
0

我试过了我可以在Google上找到的解决方案,但没有任何帮助。 我AJAX功能:无法发送jQuery发布数据到MVC控制器

$.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 = {}; 
+0

你得到什么样的错误? – br4d

+0

我可以在浏览器控制台中看到我的数据,但在服务器端,一切都为空,除了'sessionId' – ReasonX7

+0

ExerciseCreateInfo也是您拥有的类型的名称?你能发布涉及的对象(如练习和任何子对象)吗? – br4d

回答

0

对不起,一个人,是谁写的MVC控制器使用了错误的命名空间。现在一切都很好。感谢帮助。

0

您可以发送数据以多种方式控制器:该样品中 可以发送数据与3的方式来位指示:

  1. Ajax.BeginForm
  2. 型号
  3. 视图模型
  4. 阿贾克斯jquery
  5. FormCollection
  6. 定义输入
  7. ...

Download Sample.

相关问题