【问题标题】:Posting multiple model Objects with Ajax in ASP.NET MVC在 ASP.NET MVC 中使用 Ajax 发布多个模型对象
【发布时间】:2021-03-12 15:19:38
【问题描述】:

我想使用 AJAX 传递多个模型对象: jQuery代码:

function UpdateTestSpec(deviceType, dataSet, lineNumber, orderNumber) {
    var dataModel = {
        inputs: {
            SearchInputs: { DeviceType: deviceType, DatasetKey: dataSet, LineNumber: lineNumber, OrderNo: orderNumber }
        },
            serverName: sessionStorage.getItem("selectedServer")
};
    $.ajax({
        type: "GET",
        url: 'TestSpecSearchResult',
        contentType: "application/json; charset=utf-8",
        data: dataModel,
        dataType: "HTML",
        error: function (err) {
            console.log(err);
        },
        success: function (result) {
            $("#testSpecTable").html(result);
        }
    });
}

控制器:

 public ActionResult TestSpecSearchResult(TestSpecModels inputs, string serverName,int? page)
    {
    }

型号:

public class TestSpecModels
{
    public TestSpecModels()
    {
        CurrencyTestSpecChannel = new CurrencyTestSpecChannel();
        CurrencyTestSpecs = new CurrencyTestSpecs();
        SearchInputs = new TestSpecSearchInputs();
        CreateTestSpecs = new TestSpec();
    }
    public CurrencyTestSpecChannel CurrencyTestSpecChannel { get; set; }
    public CurrencyTestSpecs CurrencyTestSpecs { get; set; }
    public TestSpecSearchInputs SearchInputs { get; set; }
    public TestSpec CreateTestSpecs { get; set; }

}

public class TestSpecSearchInputs
{
    public Devices? DeviceType { get; set; }
    public string DatasetKey { get; set; }
    public int? LineNumber { get; set; }
    public int? OrderNo { get; set; }
    public string ServerName { get; set; }
   

}

我已尝试创建 dataModel,它将包含操作中预期的输入,并且在输入中我添加了第二个模型,该模型将包含所需的所有数据,但对于 SearchInputs 值,我得到的是 null。那么如何将数据发送到控制器操作

【问题讨论】:

    标签: c# jquery ajax asp.net-mvc


    【解决方案1】:

    如果您想将复杂数据传递给控制器​​,最好使用POST 而不是GET

    当您使用GET 时,它只会将参数连接到其 url 查询字符串,如果它是对象内的对象,则它会成为您的参数无法理解的对象数组。

    如果您使用POST,它会将复杂数据正确地传递给控制器​​中的参数可以理解的值。

    【讨论】:

    • 好的,但在我的情况下,我想显示数据并获取数据如何完成。
    • 您仍然可以使用POST。在您的后期控制器中,只需获取数据并在视图中返回您需要的模型。 GETPOST 是一种将数据从客户端传输到服务器的方式。不是因为需要获取数据不代表只能使用GET
    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    相关资源
    最近更新 更多