2017-06-13 83 views
0

我正在尝试使用web方法保存数据。但是它显示了一个像找不到方法的错误。未找到Ajax web方法

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; 
} 

在的.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); 
    } 

在我的web.config我有加HTTP GET和POST请求如下

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

如果我检查谷歌浏览器的控制台,它显示错误,如InsertMasterCourse.aspx找不到。 .aspx添加了我的Web服务方法。如何解决它。

+0

尝试取出ScriptMethod()属性。这将导致它只接受GET请求。 https://stackoverflow.com/questions/941484/webmethod-vs-scriptmethod。同样,根据此示例,您可能需要ASMX类声明中的ScriptService()属性:https://www.aspsnippets.com/Articles/Call-Consume-Web-Service-ASMX-using-jQuery-AJAX-in- ASPNet.aspx – ADyson

+0

是的,我已经删除ScriptMethod()。但仍然没有找到错误 – Hisanth

+0

你确定你已经按照我给的第二个链接正确设置了一切吗? – ADyson

回答

0

试试这个 -

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; 
} 

在的.asmx 使用Newtonsoft.dll在组装参考

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