gpt4 book ai didi

c# - 尝试 ajax 发布选定复选框列表时超出最大调用堆栈大小

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:48 24 4
gpt4 key购买 nike

我有一个页面,其中填充了数据库中每条记录的复选框列表。用户可以选择任意数量的复选框,系统应保存他们的响应。我很难让我的选定复选框数组传递到我的 Controller 。

当我运行代码并单击提交按钮时,出现超出最大调用堆栈大小的消息,我不确定如何解决该问题。浏览器控制台错误消息的图像:http://imgur.com/a/BnKLL

.cshtml:

    @{
ViewBag.Title = "Subject";
}

<head>
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

</head>

<h2>Explore Subjects</h2>

<div>
<button id="SubmitButton">Save Changes</button>
<div style="border-bottom:solid">
<h4>Your Followed Subjects</h4>
<div id="FollowedSubjects">
@foreach (var subject in Model.FollowedSubjects)
{
<input type="checkbox" name="SubjectCheckBox" checked="checked" value=@subject.SubjectId>@subject.SubjectDetail.Subject<br>
}
</div>
</div>
<div id="AllSubjects">
<br />
<h4>More Subjects to Follow</h4>
<p>Ordered by number of bills with subject</p>
@foreach(var subject in Model.AllSubjects)
{
<div class="subjectDisp">
<input type="checkbox" name="SubjectCheckBox" value=@subject.Subject.SubjectId>@subject.Subject.Subject (@subject.Count) <br>
</div>
}
</div>
</div>

<script>
$(document).ready(function () {
$('#SubmitButton').click(function () {
var checkboxes = document.getElementsByName("SubjectCheckBox");
var checked = [];
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
checked.push(checkboxes[i]);
}
}

$.ajax({
url: '@Url.Action("FollowSubjects", "Home")',
type: 'POST',
data: { Parameters: checked },
success: function (result) {
alert("success");
},
error: function (result) {
alert("error");
}
});
alert("there")
});
});
</script>

我正在尝试调用的 Controller 功能。

    [HttpPost]
public ActionResult FollowSubjects(int[] Parameters)
{
int i = 0;
return View();
}

最终我会将其写入数据库,但现在我只是在 int i = 0 处设置了一个断点;查看传递给函数的内容。

最佳答案

您可以将其作为字符串数组发送,并在服务器端将它们转换为 int 或将其字符串化并发送

var checked=""
$(checkboxes).each(function () {
checked += this + ',';
i++;

ajax --> data: { Parameters: checked },

 [HttpPost]
public ActionResult FollowSubjects(string Parameters)
{
// Do your task

return View();
}

关于c# - 尝试 ajax 发布选定复选框列表时超出最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45898733/

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