2013-11-09 9 views
0

이것은 녹아웃으로 WCF 서비스를 사용하는 것은 처음입니다. 아약스 호출을 사용하여 전체보기 모델을 JSON 객체로 POST하려고합니다.Webinvoke에서 Ajax 호출을 사용하여 POST JSON 호출

엔드 포인트 'System.ServiceModel.Description.WebScriptEnablingBehavior'가

나는 일부 개발자 것을 눈치 챘을 사용할 수 없습니다 'UriTemplate'를 사용 :

내가 얻을 오류 메시지입니다 큰 물체로 작업 할 때 불필요한 매개 변수로 각 값을 보냅니다.

이 내 WCF 방법입니다 : 이것은 내 아약스 기능이

[OperationContract] 
    [WebInvoke(UriTemplate = "AddNewEvent?newEvent", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] 
    public bool AddNewEvent(Models.DAL_CRMEvents newEvent) 
    { 
     Entities.CRMEntities dbCRM = new Entities.CRMEntities(); 
     //Models.CRMEvents crmEvent = new Models.CRMEvents(); 
     Entities.Event crmEvent = new Entities.Event(); 



     crmEvent.EventDateCreated = Convert.ToDateTime(newEvent.DateCreated); 
     crmEvent.EventActive = true; 
     crmEvent.EventDescription = newEvent.Description; 
     crmEvent.EventDate = Convert.ToDateTime(newEvent.Date); 
     crmEvent.EventTimeStart = TimeSpan.Parse(newEvent.TimeStart); 
     crmEvent.EventTimeEnd = TimeSpan.Parse(newEvent.TimeEnd); 
     crmEvent.EventAllDay = newEvent.AllDay; 

     dbCRM.AddToEvent(crmEvent); 

     return true; 
    } 

입니다

function SaveEvent (data) { 
     var s = { 
      newEvent: ko.mapping.toJS(data) 
     } 


     alert(data.AllDay()); 
     $.ajax({ 
      type: "POST", 
      url: "../Services/CRMDataService.svc/AddNewEvent", 
      data: JSON.stringify(s), 
      contentType: "application/json; charset=utf-8", 
      dataType: "JSON", 
      success: function (result) { 
       alert(result); 
      }, 

      error: function (jqXHR, textStatus, errorThrown) { 
       if (textStatus == "error" && errorThrown != "") { 
        var n = noty({ 
         text: errorThrown, 
         type: 'warning', 
         dismissQueue: false, 
         modal: true, 
         layout: 'center', 
         theme: 'defaults', 
         callback: { 
         } 
        }) 
       } 
      } 
     }) 
    } 

답변

1

[OperationContract] 
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] 
public bool AddNewEvent(Models.DAL_CRMEvents newEvent) 

누군가가 posted here을 가지고 ... 같이하는 OperationContract을 변경해보십시오 이것은 같은 문제를 해결했다. 도움이 될만한 post here도 있습니다.

+1

내 문제를 해결해 주셔서 감사합니다 .-) – Gericke

관련 문제