首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webinvoke使用ajax调用发布JSON

Webinvoke使用ajax调用发布JSON
EN

Stack Overflow用户
提问于 2013-11-09 09:49:38
回答 1查看 1.1K关注 0票数 0

这是我第一次在Knockout中使用WCF服务。我想将整个视图模型作为一个带有ajax调用的JSON对象发布。

这是我得到的错误消息:

不能与'System.ServiceModel.Description.WebScriptEnablingBehavior‘一起使用使用“UriTemplate”的端点

我注意到一些开发人员将每个值作为参数发送,我认为这是不必要的,特别是当您使用一个大对象时。

这是我的WCF方法:

代码语言:javascript
复制
[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;
    }

这是我的ajax函数

代码语言:javascript
复制
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: {
                        }
                    })
                }
            }
        })
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-09 10:21:11

试着把OperationContract换成这样.

代码语言:javascript
复制
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public bool AddNewEvent(Models.DAL_CRMEvents newEvent)

有人有posted here,这解决了同样的问题。还有一个post here可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19874586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档