jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JQuery Ajax并将多个复杂对象发布到asp.net MVC Controller大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
`问候,

将多个参数发布到mc控制器方法时出现问题.

controller...
[HttpPost]
public ActionResult SaveSomething(SomeDomainObject domainObject,bool anOption)
{
}

Ajax Code...
function performPostData(postDataOptions,closeWindow) {
        $.ajax({ type: postDataOptions.httpVerb,url: postDataOptions.url,datatype: "json",Traditional: true,data: postDataOptions.data(),success: function () {
                if (closeWindow) {
                    var window = $('#window').data("kendoWindow");
                    window.close();             
                }
            },error: function (xhr,status,error) {
                var msg = JSON.parse(xhr.responseText);
                var validator = $("#editBase").kendoValidator().data("kendoValidator"),status = $(".editValidationStatus");
                var err = msg.Message;
                status.text(err).addClass("invalid");
            }
        });
    }

JScript function to format data...

function GetPostData()
{
    var _domainObject={            
            prop1: 1,prop2: 2,prop3: 3                      
        };
        return JSON.stringify({ domainObject:_domainObject,anOption: true});
}

我在网络捕获中看到这是请求体:

{"domainObject":{"prop1":1,"prop2":2,"Prop3":3},"anOption":true}

控制器引发以下异常:

The parameters dictionary contains a null entry for parameter 'anOption' of non-nullable type 'System.Boolean' for method 'System.Web.Mvc.ActionResult SaveSomething(Domain.Data.someDomainObject,Boolean)' in 'Reports.Controllers.TestController'. An optional parameter must be a reference type,a nullable type,or be declared as an optional parameter. Parameter name: parameters

我一直在旋转我的车轮几个小时试图得到一个简单的域对象和bool类型的另一个参数被序列化并传递给我的控制器.有任何想法吗?

解决方法

看起来你缺少jquery ajax调用中的内容类型参数.
你应该明确地将它设置为json,就像在这代码中一样:

function performPostData(postDataOptions,closeWindow) {
    $.ajax({ type: postDataOptions.httpVerb,contentType: "application/json; charset=utf-8",...rest of your code

否则它将获得其认值(见http://api.jquery.com/jQuery.ajax/):

大佬总结

以上是大佬教程为你收集整理的JQuery Ajax并将多个复杂对象发布到asp.net MVC Controller全部内容,希望文章能够帮你解决JQuery Ajax并将多个复杂对象发布到asp.net MVC Controller所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:对象