2017-05-11 1 views
1

Es wurde 2 Tage Ich stecke in einem dummen Fehler machen. Ich kann keinen Ajax Post Call machen. Kann mir jemand helfen, das zu lösen, was ich falsch mache? Es wird toll sein. Ich bekomme immer 500 interne Serverfehler. Ich weiß, was Fehler bedeutet, aber wie man es los wird. Im Folgenden meine Ajax-Funktion, die immer wieder 'nicht bestanden'Wie Ajax POST Aufruf in Visual Studio REST-API

function Add() { 
 
     var Tname = document.getElementById("TaskName").value.trim(); 
 
     var Sdate = document.getElementById("StartDate").value.trim(); 
 
     var Edate = document.getElementById("EndDate").value.trim(); 
 
     var sms = document.getElementById("chkSMS").checked; 
 
     var email = document.getElementById("chkEmail").checked; 
 
     var assigned = document.getElementById("test").value.trim(); 
 

 
     if (Tname == "") 
 
     { 
 
      alert("Please enter Your Task Name"); 
 
      return; 
 
     } 
 
     if (Sdate >= Edate) 
 
     { 
 
      alert("Please Correct the Start And End date"); 
 
      return; 
 
     } 
 
     
 
      var user = $("#test").select2("val"); 
 
      console.log(user); 
 

 
      var model = { 
 
       id:$("#secid").val(), 
 
       projectId: $("#ProjectDropdown").val(), 
 
       task_name: $("#TaskName").val(), 
 
       description: $("#Desc").val(), 
 
       start_date: $("#StartDate").val(), 
 
       end_date: $("#EndDate").val(), 
 
       sms: document.getElementById("chkSMS").checked, 
 
       email: document.getElementById("chkEmail").checked, 
 
       status:"1", 
 
       tempUsers: user 
 
      }; 
 
      console.log(model); 
 
      $.ajax 
 
       (
 
        { 
 
       
 
       url: '/api/TaskApi/', 
 
       type: 'POST', 
 
       data: model, 
 
       dataType: "json", 
 
       success: function (data) { 
 
        alert('Task Added'); 
 
        // location.reload(); // this is not a good practice 
 
       }, 
 
       error: function() { alert('Task not Added'); } 
 
      }); 
 
     
 
    }
[Route("/api/TaskApi/"), HttpPost] 
 
     public String CreateTask(tempTask tempTask) 
 
     { 
 

 
      Task task = new Task(); 
 
      task.enable = true; 
 
      task.created_on = DateTime.Now; 
 
      task.task_name = tempTask.task_name; 
 
      task.description = tempTask.description; 
 
      task.start_date = tempTask.start_date; 
 
      task.end_date = tempTask.end_date; 
 
      task.status = tempTask.status; 
 
      task.sms = tempTask.sms; 
 
      task.email = tempTask.email; 
 
      db.task.Add(task); 
 
      Tagging tag = new Tagging(); 
 
      tag.tasks = task; 
 
      tag.project = db.project.Find(tempTask.projectId); 
 
      List<Users> usr = new List<Users>(); 
 
      for (int i = 0; i < tempTask.tempUsers.Count; i++) 
 
      { 
 

 
       var user = db.user.Find(tempTask.tempUsers[i]); 
 
       usr.Add(user); 
 
      } 
 
      tag.users = usr; 
 
      db.tagging.Add(tag); 
 
      if (db.SaveChanges() > 0) 
 
      { 
 
       return "task success!!"; 
 

 
      } 
 
      else 
 
      { 
 
       return "Some Error"; 
 
      } 
 

 
      
 
     }

EDIT: Ich brauche nur die erste Zeile Code in meiner C# Methode Create zu treffen. Ich kann es nicht treffen. Der Rest des Code- und Ansichtsmodells ist in Ordnung. Ich habe kontrolliert.

EDIT: json.strigify (Modell) // Ausgabe in Konsole { "id": "0", "projectId": "6007", "task_name": "fgfg", "Beschreibung": "fgf", "start_date": "2017-05-05", "end_datum": "2017-05-11", "sms": false, "email": true, "status": "1", "tempUsers ": [" 1003" ]}

public class tempTask 
 
    { 
 
     public int id { get; set; } 
 
     public int projectId { get; set; } 
 
     public string task_name { get; set; } 
 
     public string description { get; set; } 
 
     public DateTime start_date { get; set; } 
 
     public DateTime end_date { get; set; } 
 
     public bool sms { get; set; } 
 
     public bool email { get; set; } 
 
     public int status { get; set; } 
 
     public List<int> tempUsers { get; set; } 
 
    }

+0

Könnten Sie nur versuchen, eine ganze Zahl vorbei und prüfen, ob seine Arbeits .. dann weiter gehen .. – Abi

+0

können Sie Ihre modal Post .. –

+0

Ich kann alles posten ... Sag mir welches Modal? ein bisschen ausführlich –

Antwort

0

versuche mal,

$.ajax 
    ({ 
    url: '/api/TaskApi/', 
    type: 'POST', 
    data: Json.stringyfy(model), 
    dataType: "json", 
    success: function(data) { 
     alert('Task Added'); 
     // location.reload(); // this is not a good practice 
    }, 
    error: function() { alert('Task not Added'); } 
}); 
+0

ich zum ersten Mal die gleiche json.stringyfy versucht. aber dasselbe Problem. –

+0

@nimraasad haben Sie versuchen, mit der URL '/ api/TaskApi' – Sajeetharan

+0

yup! Nichts ist passiert –

0

Bitte stellen Sie sicher, dass Sie die routeAttribute in RouteConfig unter AppStart Ordner registrieren.

diese Einstellungen vornehmen, alle Routen konfigurieren.

+0

Dies ist eine Fortsetzung Projekt und vor diesem Ajax-Aufruf Ich habe mehrere der Post gestellt und bekommt Anrufe mit leeren und fileld Modellen als Parameter alle arbeiten ... also bewiesen, daß ich Routen in meinem AppStart konfiguriert haben;) @ankit –

+0

@ Nimraasad, können Sie bitte auch die JSON.stringyfy (Modell) -Ausgabe in Frage, ich denke, Fehler auftreten, während Modell Bindungsprozess. –

+0

Wie bekomme ich die Strigify-Ausgabe hierher? @ ankit kannst du führen? –

1

enter image description here Problem thai i finden im Code 1) URL Sie Web-api 2) Daten an den Server gesendet, wie es machen, als Controller wollen Ajax-Code

  $('#postdata').click(function() { 
      // alert('alert btn click'); 

      // Dear Nim , i'm just using dafault value , its working from my side 

      var userArray = []; 
      var user = 1 ; //get the value of user , push into array , then send to it. 
      userArray.push(user); 

      //you can loop it through 
      // for (var i = 0; i < 10; i++) { 
      //  userArray.push(i) 
      // } 

      var model = { 
       id: 0, //should be integer , parse to parseInt(value) 
       projectId: 1, //should be integer , parse to parseInt(value) 
       task_name:"sdfsadfsadf", 
       description: "description", 
       start_date: '13-12-2007', 
       end_date: '13-12-2007', 
       sms: true, 
       email: true, 
       status: 1, //should be integer , parse to parseInt(value) 
       tempUsers: userArray // array of integer 
      }; 

      console.log('modal') 
      console.log(model) 
       $.ajax({ 
        type: "POST", 
        url: 'http://localhost:3153/api/TaskApi', 
        contentType: 'application/json', 
        dataType: 'text', 
        async: false, 
        traditional: true, 
        data: JSON.stringify(model), 
        success: function (data, status, xhr) { 
          //alert here data 
         if (xhr.statusText == 'Created' && xhr.status == 201) { 
         //do stuff here 
         } 
         else { 
          //do stuff here 
         } 

        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert('error') 

        } 
       }); 


     }) 
    }) 

-Controller

[Route("api/TaskApi")] 
    [HttpPost] 
    public String TaskApi(tempTask tempTask) 
    { 
     return "Some Message"; 
    } 

    public class tempTask 
    { 
     public int id { get; set; } 
     public int projectId { get; set; } 
     public string task_name { get; set; } 
     public string description { get; set; } 
     public DateTime start_date { get; set; } 
     public DateTime end_date { get; set; } 
     public bool sms { get; set; } 
     public bool email { get; set; } 
     public int status { get; set; } 
     public List<int> tempUsers { get; set; } 
    } 
+0

500 interne servor Fehler vorherrscht :( –

+0

traditionell: true, fügen Sie es –

+0

nichts passierte –

Verwandte Themen