Это мой первый раз, когда я использую службу WCF с нокаутом. Я хочу, чтобы POST всей модели представления рассматривался как объект JSON с вызовом ajax.Webinvoke для POST JSON с вызовом ajax
Это сообщение об ошибке, что я получаю:
Endpoints используя 'UriTemplate' не может быть использован с 'System.ServiceModel.Description.WebScriptEnablingBehavior'
Я заметил, что некоторые разработчики отправьте каждое значение в качестве параметра, который, как мне кажется, не нужен, особенно если вы работаете с большим объектом.
Это мой метод 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: {
}
})
}
}
})
}
Спасибо, что это решило мою проблему :-) – Gericke