2017-06-13 2 views
0

Ich versuche, Daten mit Web-Methode zu speichern. Aber es zeigt einen Fehler wie Methode nicht gefunden.Ajax Web-Methode nicht gefunden

function InsertMasterCourse() { 
    var data = {}; 
    data.Name = $('[id$=txtName]').val(); 
    $.ajax({ 
     type: 'POST', 
     url: '<%= ResolveUrl("~/MasterService.asmx/InsertMasterCourse") %>', 
     data: "{data:" + JSON.stringify(data) + "}", 
     contentType: "application/json; charset=utf-8", 
     dataType: 'json', 
     async: true, 
     success: function (response) { 
      $('#txtName').val(''); 
     }, 
     error: function (response) { 
      alert(response.statusText); 
     } 
    }); 

    return false; 
} 

In .asmx

[WebMethod()] 
    [ScriptMethod()] 
    public static void InsertMasterCourse(Master_CourseBLL data) 
    { 
     data.CollegeId = 1; 
     data.Status = "Active"; 
     data.CreatedOn = DateTime.Now; 
     data.UpdatedOn = DateTime.Now; 
     data.Save(true); 
    } 

In meinem web.config ich hinzufügen, haben HTTP GET und POST-Anforderung als

<location path="MasterService.asmx"> 
<system.web> 
    <webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
    </protocols> 
    </webServices> 
</system.web> 

folgt Wenn ich Google Chrome Konsole überprüfen, Es zeigt Fehler wie InsertMasterCourse.aspx nicht gefunden. .aspx hinzugefügt mit meiner Web-Service-Methode. Wie man es löst.

+0

Versuchen Sie, das Script() Attribut zu entfernen. Dies wird dazu führen, dass es nur GET-Anfragen akzeptiert. https://stackoverflow.com/questions/941484/webmethod-vs-scriptmethod. Auch in diesem Beispiel benötigen Sie möglicherweise das ScriptService() - Attribut für die ASMX-Klassendeklaration: https://www.aspsnippets.com/Articles/Call-Consume-Web-Service-ASMX-using-jQuery-AJAX-in- ASPNet.aspx – ADyson

+0

Ja, ich habe ScriptMethod() entfernt. aber immer noch nicht gefunden Fehler – Hisanth

+0

haben Sie sichergestellt, dass Sie alles richtig eingerichtet haben, wie der zweite Link, den ich gab? – ADyson

Antwort

0

versuchen, diese -

function InsertMasterCourse() { 
    var data = {}; 
    data.Name = $('[id$=txtName]').val(); 
    $.ajax({ 
     type: 'POST', 
     url: '<%= ResolveUrl("~/MasterService.asmx/InsertMasterCourse") %>', 
     data: JSON.stringify(data), 
     contentType: "application/json; charset=utf-8", 
     dataType: 'json', 
     async: true, 
     success: function (response) { 
      $('#txtName').val(''); 
     }, 
     error: function (response) { 
      alert(response.statusText); 
     } 
    }); 
    return false; 
} 

In .asmx Verwendung Newtonsoft.dll in Ihrer Referenz montieren

using System.NewtonSoft.Data; 
[WebMethod()] 
[ScriptMethod()] 
public static void InsertMasterCourse(string data) 
{ 
    Datatable dt = Newtonsoft.Json.JsonConvert.DeSerializeObject(data); 
} 
Verwandte Themen