gpt4 book ai didi

javascript - 参数未传递到 ActionResult

转载 作者:行者123 更新时间:2023-12-02 14:11:17 26 4
gpt4 key购买 nike

所以我有这个 Javascript 代码:

function AddToStuff(somethingID) {
var stuffID = document.getElementById('StuffID').innerText;

alert("First Alert: " + stuffID);

if (stuffID == -1) {
document.getElementById('StuffID').innerText = 0;
stuffID = 0;
}

alert("Second Alert: " + stuffID)
StuffCallback.fire(somethingID, stuffID);
}

$(document).ready(function () {
initializeStuff();
});

var StuffCallback = $.Callbacks();

function initializeStuff() {
StuffCallback.add(function (somethingID, stuffID) {
$.ajax({
url: "pos/Stuff",
type: "GET",
traditional: true,
data: {
somethingID: somethingID,
stuffID: stuffID
},

success: function (result, textStatus, xhr) {
alert("Third Alert: " + stuffID);
var contentArea = $("#Stuff");

contentArea.html(result);
$("#Stuff").hide();
$("#Stuff").show({ duration: 250 });
}
});
});
}

这个 C# 代码:

public ActionResult Stuff(int somethingID = 0, int stuffID = -1)
{
if (stuffID == -1)
{
//do something
}
else if (stuffID == 0)
{
//do something else
}
else
{
//do something else
}
}

return View();
}
}

问题在于 C# 方法的 stuffID 始终为 -1,因此执行第一个“if”情况。

当页面加载并且$(document).ready 调用initializeStuff 时,stuffID 为-1,因此它会根据需要执行第一个“if”情况。后来,当调用 AddToStuff() 时,因为用户单击了某些内容,所以它会读取我的元素 StuffID,我已将其初始化为 -1。第一个警报确实显示 -1。然后 StuffID 在 AddToStuff() 内的“if”中更改为 0,并且第二个警报确实显示 0。

但随后我让 Javascript 函数 AddToStuff 再次调用 C# 函数,但目标是让第二个参数 (stuffID) 为 0 而不是 -1。即使第三个警报也会显示 0。但在 C# 函数中,stuffID 仍然是 -1。

我无法传递 0。任何帮助将不胜感激。

注意:我将我的代码概括为“某事”和“东西”,但这部分应该工作正常 - 函数在我期望的时候调用。

最佳答案

建议:

  • 在浏览器中使用 fiddler 或开发人员工具来查看传递到服务器的内容(0 或 -1)?
  • 如果服务器接收到的数据不正确,Stuff(int SomethingID = 0, int stuffID = -1) 的默认值也可能导致问题。
  • 在 Ajax 调用中设置数据类型 dataType: 'json'
  • 如果您使用 GET 请求,请确保您已正确设置 data 对象

关于javascript - 参数未传递到 ActionResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com