【问题标题】:Invalid web service call, missing value for parameter: 'newReviewOrLike'无效的 Web 服务调用,缺少参数值:“newReviewOrLike”
【发布时间】:2014-04-04 05:34:29
【问题描述】:

我知道这个问题已经被问过很多次了,但是在阅读了所有的解决方案之后,我仍然想不出解决这个问题的方法。从过去的 4 个小时开始,我一直被困在这一点上,所以任何帮助都将不胜感激。 这是我的 ajax 调用:

       $.ajax({
            url: "http://localhost:1316/MoviesWebService.asmx/saveReview",
            data: '{ username:"kartik1990",critic:"sanjayR",quote:"great",imdbId:"tt189",isCriticAMember:"true",reviewOrLikes:"review" }',
            type: 'post',
            contentType: 'application/json',
            dataType:'json',
            success: function (response) {
                console.log(response);
            }
        });

ASMX 代码:

[WebMethod]
public bool saveReview(ProjLikesTO newReviewOrLike) {
    using (kkapilaCSDataContext db = new kkapilaCSDataContext()) {
        proj_like action = new proj_like();
        action.username = newReviewOrLike.username;
        action.critic = newReviewOrLike.critic;
        action.quote = newReviewOrLike.quote;
        action.imdbId = newReviewOrLike.imdbId;
        action.isCriticAMember = newReviewOrLike.isCriticAMember;
        action.reviewOrlikes = newReviewOrLike.reviewOrLikes;
        db.proj_likes.InsertOnSubmit(action);
        db.SubmitChanges();
        return true;
    }

ProjLikesTO:

public class ProjLikesTO {
    public string username {
        set;
        get;
    }
    public string critic {
        set;
        get;
    }
    public string quote {
        set;
        get;
    }
    public string imdbId {
        set;
        get;
    }
    public string isCriticAMember {
        set;
        get;
    }
    public string reviewOrLikes {
        set;
        get;
    }

    public ProjLikesTO() {
    }

    public ProjLikesTO(string username, string critic, string quote, string imdbId, string isCriticAMember, string reviewOrLikes) {
        this.username = username;
        this.critic = critic;
        this.quote = quote;
        this.imdbId = imdbId;
        this.isCriticAMember = isCriticAMember;
        this.reviewOrLikes = reviewOrLikes;
    }

}

【问题讨论】:

    标签: jquery asp.net web-services asmx


    【解决方案1】:

    在您的情况下,首先您必须在使用 ajax 传递之前填充对象,如下所示

    var newReviewOrLike = { username:"kartik1990",critic:"sanjayR",quote:"great",imdbId:"tt189",isCriticAMember:"true",reviewOrLikes:"review" }
      $.ajax({
                url: "http://localhost:1316/MoviesWebService.asmx/saveReview",
                data:  JSON.stringify({ newReviewOrLike : newReviewOrLike }),
                type: 'post',
                contentType: 'application/json',
                dataType:'json',
                success: function (response) {
                    console.log(response);
                }
            });
    

    【讨论】:

    • 我很高兴@user3291389 :)
    【解决方案2】:

    您需要对您的 ajax 方法进行一些更改..

     var newReviewOrLike= { username:"kartik1990",critic:"sanjayR",quote:"great",imdbId:"tt189",isCriticAMember:"true",reviewOrLikes:"review" };
    
      $.ajax({
                url: "http://localhost:1316/MoviesWebService.asmx/saveReview",
                data: JSON.stringify({'newReviewOrLike':newReviewOrLike}), // check this
                type: 'post',
                contentType: 'application/json',
                dataType:'json',
                success: function (response) {
                    console.log(response);
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2011-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      相关资源
      最近更新 更多