【问题标题】:Failed to pass JSON Object传递 JSON 对象失败
【发布时间】:2013-06-19 09:28:30
【问题描述】:

我正在尝试调用服务器端方法并使用 $.ajax() 以 Json 格式传递值,但出现此错误:

{"Message":"Invalid web service call, missing value for parameter:   \u0027obj\u0027.","StackTrace":"   at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n   at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}

当我硬编码值并尝试发送时,那是正确的..但无法传递 Json 对象。

客户端代码

<script type="text/javascript">

function DailyReportFn() {

    debugger;
    var RadTabStrip1 = $find("<%= RadTabStrip1.ClientID %>");
    var tab = RadTabStrip1.findTabByText("Qualified Families");
    var RadPageView1 = tab.get_pageView()
    var elment = RadPageView1.get_element();


    var DailyReport = {

        NewReg: $find("<%= NewReg.ClientID %>").get_textBoxValue(),
        Removed: $find('<%= Removed.ClientID %>').get_textBoxValue(),
        Homevt: $find('<%= Homev.ClientID %>').get_textBoxValue()
    }



    $.ajax({
        type: "POST",
        url: '<%=ResolveUrl("~/DModules/Hc/WebMethods.aspx/DemoReport")%>',
        data: JSON.stringify(DailyReport),
        contentType: "application/json",
        dataType: "json",
        async: false,
        cache: false,
        success: function (data) {
            debugger;
            alert(data);
        },
        error: function (x, e) {
            alert(x.responseText);
        },

    });
}

服务器端代码

[WebMethod, ScriptMethod] 
public static int DemoReport(Drep report)
{
    int result = -1;

    int NewReg = report.NewReg;
    int Removed = report.Removed;
    int Homev = report.Homevt;

    return result;
}

【问题讨论】:

  • 你使用的是哪个 javascript 库,它有 $find

标签: c# javascript json web-services telerik


【解决方案1】:

试试这个

data: JSON.stringify({report:DailyReport}),

【讨论】:

    【解决方案2】:

    在发帖之前,请先尝试检查 JSON.stringify(DailyReport) 的值。

    var DailyReport = {
        NewReg: $find("<%= NewReg.ClientID %>").get_textBoxValue(),
        Removed: $find('<%= Removed.ClientID %>').get_textBoxValue(),
        Homevt: $find('<%= Homev.ClientID %>').get_textBoxValue()
    }
    console.info(JSON.stringify(DailyReport));//OR: alert(JSON.stringify(DailyReport));
    
    $.ajax({...
    

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 2019-08-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多