当前位置: 首页 > 面试题库 >

将多个对象传递给我的控制器

蔚和安
2023-03-14
问题内容

我正在将一个对象传递给我的控制器,如下所示:

var form = JSON.stringify({
        "subRevisedRequest": $('#frmRevised').val(),
        "subSubcontractor": $('#frmSubcontractor').val(),
        "subDescription": $('#frmDesc').val(),
        "subCostCode": $('#frmCostCode').val(),
        "subAmt": $('#frmAmt').val(),
        "subPaymentTerms": "terms",
        "subRetainage": 10,
        "subComments": $('#frmComment').val()
    });

    $.ajax({
        url: '@Url.Action("CreateSubcontracts", "Routing")',
        type: "POST",
        datatype: "JSON",
        contentType: "application/json; charset=utf-8",
        data: form,
        success: function(result) {
            if (!result.success) {
                $('#errormsg').empty();
                $('#errormsg').append(result.message);
            } else {
                location.href = '@Url.Action("Index", "Home")';
            }
        },
        error: function (result) {
            alert("Failed");
        }
    });

我的控制器将其视为它正在寻找的对象:

public ActionResult CreateSubcontracts(RoutingSubcontracts s)

我的问题是我只想再传递一个字符串。我知道我可以制作特定于视图的模型,但我想知道是否可以执行以下操作:

public ActionResult CreateSubcontracts(RoutingSubcontracts s, string bu)

我没有运气就尝试了以下方法:

data: JSON.stringify({ "s": form, "bu": "251" }),

但是复杂对象只是作为null来的。有没有办法我也可以传递对象和字符串


问题答案:

尝试将字符串项添加到已有的JSON中。不要对其进行字符串化,否则它将发送一个大字符串,您必须在服务器上再次对其进行解析。

var form = {
    "subRevisedRequest": $('#frmRevised').val(),
    "subSubcontractor": $('#frmSubcontractor').val(),
    "subDescription": $('#frmDesc').val(),
    "subCostCode": $('#frmCostCode').val(),
    "subAmt": $('#frmAmt').val(),
    "subPaymentTerms": "terms",
    "subRetainage": 10,
    "subComments": $('#frmComment').val(),
    "bu": "251"    // add it here
};

$.ajax({
    url: '@Url.Action("CreateSubcontracts", "Routing")',
    type: "POST",
    datatype: "JSON",
    data: form,
    success: function(result) {
        if (!result.success) {
            $('#errormsg').empty();
            $('#errormsg').append(result.message);
        } else {
            location.href = '@Url.Action("Index", "Home")';
        }
    },
    error: function (result) {
        alert("Failed");
    }
});


 类似资料:
  • 问题内容: 我正在使用.Net 4,MVC 3和jQuery v1.5做一些工作 我有一个JSON对象,它可以根据调用它的页面而改变。我想将对象传递给控制器​​。 我了解如果我创建一个自定义模型,例如 并在我的控制器中使用它,例如 并使用jQuery的.ajax方法传递对象,如下所示: 这工作正常,我的JSON对象已映射到我的C#对象。我想做的是通过一个可能更改的JSON对象。当它更改时,我不需要

  • 我正在开发将复杂数据从window.open()传递到MVC Controller action方法参数的javascript功能。我能够通过构建查询字符串并从控制器中的[FromQuery]检索它们来实现它。 但我的问题是,我想将数据作为模型对象传递。在窗户里可以吗。打开() 下面是我的javascript代码 如您所见,我可以在URL中传递数据,但它似乎是公开的。那么,有没有办法传入var u

  • 问题内容: 我有以下任意JSON对象(字段名称可能会更改)。 -- 我知道我可以像定义具有相同字段名的JSON对象那样定义类,但是我希望控制器接受具有不同字段名的任意JSON对象。 问题答案: 如果您想将自定义JSON对象传递给MVC操作,则可以使用此解决方案,它的工作原理很吸引人。 该解决方案的真正好处是,您不需要为每个参数组合定义一个新类,并且除此之外,您可以轻松地将对象转换为其原始类型。 更

  • 问题内容: 在MVC4中,如何将javascript对象传递给AJAX中的C#控制器?最后,我尝试了一下,但没有成功。 Javascript客户端: C#服务器端方法: 我的参数始终为null。我试图更改contentType,但仍然无法正常工作。我的错误在哪里?我找到了一些帖子,但没有发现我做错了什么。 非常感谢。 问题答案: 确保javascript和C#模型之间的属性名称匹配。在你的问题,你

  • 我正在尝试将一个对象(或只是ID)传递给我的控制器,我从下拉列表中选择它。有2个类:产品和类别(产品包含一个外键,这是类别的ID)这是我如何将其加载到: 如您所见,我正在将对象类别传递到我的. jsp中。在那里我显示了用户可以选择的所有类别。 该值应该传递给我的控制器,但我不知道如何传递它。

  • 如果对象为NULL,则无法传递对象项目。如何将对象从HTML传递给spring控制器?