【问题标题】:How to pass values from javascript to controller [duplicate]如何将值从javascript传递到控制器[重复]
【发布时间】:2019-08-31 15:25:06
【问题描述】:

我正在尝试将 id 和一些 textboxesvalueview 传递到控制器ajax 调用有效,但它传递的值始终为 Null。我该如何解决这个问题??

这是 ajax 调用:

function TakeInput() {
    var count = document.getElementsByTagName('input').length;
    var element = document.getElementsByTagName('input');
    for (var i = 0; i < count; i++) {
        $.ajax({
            type: 'POST',
            url: '@Url.Action("Input", "Home")',
            data: JSON.stringify(element[i].id, element[i].value),
            processData: false,
            success: function () {
                //make something
            },
            error: function (errorThrown) {
                alert(errorThrown);
            }
        })
        }

这是控制器:

public JsonResult Input(string id, string value)
        {
            //do something with the id and the value
            return Json(new { result = "Success" });
        }

提前感谢您的时间和回答。

【问题讨论】:

  • 改成:data: { id: element[i].id, value: element[i].value }
  • 您的操作可以是IActionResult 类型,而不是JsonResult。您的操作应使用[HttpPost] 属性进行修饰。
  • 我不认为JSON.stringify(element[i].id, element[i].value) 做你认为它做的事情。

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


【解决方案1】:

如果您正在循环 ajax 调用,您可以绑定一个对象并将其传递给控制器​​,然后您可以在服务器端对其进行迭代。无论根据您的代码,您都可以尝试以下代码

$.ajax({
        type: 'POST',
        url: '@Url.Action("Input", "Home")',
        data: JSON.stringify({ id: element[i].id, value: element[i].value}),
        dataType: 'json',
        async: false,
        contentType: 'application/json',
        success: function () {
            //make something
        },
        error: function (errorThrown) {
            alert(errorThrown);
        }
    })

当您进行 ajax 调用时,您需要像在 json 结果 中声明的那样声明参数,例如 id,value 等,并将其绑定到 数据属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2015-02-22
    • 2023-04-03
    相关资源
    最近更新 更多