2015-05-26 2 views
-2

Передача данных из Js-файла в контроллер через вызов Ajax, но данные не принимаются на конце контроллера. Вот мой вызов и функция контроллера Ajax. Любая помощь будет appritiatedJquery.Ajax не работает

  var cor1 = ((correct/(correct + incorrect)) * 100); 
      jQuery.ajax({ 

       url: '/TakeQuiz/Score', 
       type: 'POST', 
       contentType: "application/json; charset=utf-8", 
       data: { 
        cor: cor1 
       }, 
       dataType: 'json', 
       success: function (data) { 
        alert("data:" + data); 
        alert(cor1); 
        $('#completionmessage').html('<h3 class="text-primary">Better luck next time!</h1>'); 

и моя функция контроллера

[AllowAnonymous] 
    [HttpPost] 
    public JsonResult Score(int cor = 0) 
    { 
     var score = Request["t1"]; 

     return this.Json(cor, JsonRequestBehavior.AllowGet); 
    } 

сейчас им ничего не делать, кроме получения значения и отправить его обратно. Но им получавшие значение по умолчанию т.е. 0

+1

t1 не определен в вашем контроллере. – Ragnar

+0

Вы устанавливаете contentType в javascript в «application/json», но вместо этого отправляете параметры формы. Вы намеревались отправить json? если нет, удалите параметр contentType. Если это так, отправьте строку json, а не объект. –

ответ

0

Всякий раз, когда у меня есть этот вопрос обычно помогает создать класс DTO для информации, передаваемой в ваш ViewController

public class JsonResultDto 
    { 
     public int cor { get; set; } 
    } 

затем в контроллере представления

[AllowAnonymous] 
    [HttpPost] 
    public JsonResult Score(JsonResultDto cor) 
    { 
     var score = Request["t1"]; 

     return this.Json(cor, JsonRequestBehavior.AllowGet); 
    } 
Смежные вопросы