2016-10-15 5 views
0

Ich weiß, dass dies albern klingt, aber ich bin fest, was Wert immer zurückgegeben wird mit dem Controller als Json, dh 1, 0, wahr oder falsch und beim Überprüfen der AJAX-Datei-Upload-Erfolg Teil Daten enthält nur "Erfolg" als Wert, egal was der Rückgabewert des Controllers ist.Ajax-Datei-Upload in Jquery gibt Erfolg als Ergebnis

Hier verwende ich Ajax-Datei-Upload, wie ich eine Datei von der Client-Seite hochladen.

Controller-Code:

public ActionResult ImportExcelData(HttpPostedFileBase UploadExcel) 
{ 
    try 
    { 
     var Data = Repository.ImportData(filePath, OrgID); 
     return Json(true, JsonRequestBehavior.AllowGet); 
    } 
    catch(Exception) 
    { 
     return Json("false", JsonRequestBehavior.AllowGet); 
    } 
} 

anzeigen Code:

$.ajaxFileUpload({ 
    url: '@Url.Action("ImportData", "Lead")', 
    secureuri: false, 
    type: 'POST', 
    datatype: 'JSON', 
    contentType: "application/json; charset=utf-8", 
    cache: false, 
    fileElementId: "Upload", 
    success: function (data) { 
    //data contains only success as value. 
    } 
}); 

Kann mir jemand helfen, cheers.

+0

Sie sagen, dass die Daten die Stringliteral "Erfolg" ist? – DelightedD0D

+0

Ja, Daten enthalten 'Erfolg' als Wert. – pavan

+0

Ist 'Json()' eine eingebaute Funktion oder eine Funktion, die Sie geschrieben haben? – DelightedD0D

Antwort

0

Schließlich löste es, wenn Sie das Ergebnis vom Controller zurückgeben, anstatt den JSON zurückzugeben, benutzte ich den "Inhalt (Wert)".

Controller-Code:

public ActionResult ImportExcelData(HttpPostedFileBase UploadExcel) 
    { 
     try 
     { 
     var Data = Repository.ImportData(filePath, OrgID); 
     if(sData!=null) 
      { 
       string sJSON = String.Join(",", sData); 
       return Content(sJSON); 
      } 
      else 
      { 
       return null; 
      } 
     } 
     catch(Exception) 
     { 
     return Json("false", JsonRequestBehavior.AllowGet); 
     } 
     } 

In der Ajax-Erfolg Teil Datei-Upload, anstatt die eine Zeichenfolge für die Verwendung der Daten verwenden, um zwei Zeichenketten zu erhalten, wo die zweite Zeichenfolge die Werte zurückgegeben hat. Dies kann auf ein Problem mit dem Ajax-Datei-Upload-Plugin zurückzuführen sein.

Code anzeigen:

$.ajaxFileUpload({ 
    url: '@Url.Action("ImportData", "Lead")', 
    secureuri: false, 
    type: 'POST', 
    datatype: 'JSON', 
    contentType: "application/json; charset=utf-8", 
    cache: false, 
    fileElementId: "Upload", 
    success: function (data,result) { 
    //"result contains your values. 
    } 
    }); 
Verwandte Themen