【问题标题】:ajax post always send null parameter my controllerajax post 总是发送空参数我的控制器
【发布时间】:2020-12-11 08:42:20
【问题描述】:

我尝试通过参数启动新视图,但是 ajax post 方法无法将参数传递给控制器​​。控制器参数总是看到 Null。

Index.schtml:我在 html 中的元素中触发,还通过元素内部的 Url.Action 传递控制器和操作。然后运行脚本:

function getPList(target)
{
    var Pdata = JSON.stringify({
         'sNo': "88888888"
    });
    $ajax({
        type: "POST",
        dataType: 'json',
        contentType: 'application/json',
        url: target,
        data: Pdata,
        success: function (data) {
            console.log("Response Data ↓");
            console.log(data);
        }
    });
}

控制器:

public ActionResult PListIndex(String sNo)
{
     return View(sNo);
}

如何传递控制器参数?

【问题讨论】:

  • 在@xrodas answer编辑后尝试删除dataType: 'json', contentType: 'application/json',
  • 我的 Onclick 事件是; return " " + 数据 + "";但问题是,去控制器两次,第二次调用给我参数 null ,我怎样才能防止双重调用控制器?
  • 因为你定义了href!!我在您的问题中没有看到此代码。请发布相关的 html 代码和 onclick 处理程序以更好地理解这一点。

标签: javascript ajax asp.net-mvc actionresult


【解决方案1】:

您的控制器变量名为 sNo,但您在 js 中传递了一个名为 pNo 的变量。它们应该具有相同的名称。

也尝试像这样传递数据:

 $ajax({
        type: "POST",
        dataType: 'json',
        contentType: 'application/json',
        url: target,
        data: { sNo: "888888" },
        success: function (data) {
            console.log("Response Data ↓");
            console.log(data);
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-19
    • 2013-05-03
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多