gpt4 book ai didi

javascript - 将数组从 JavaScript 传递到 viewbag 并在 Controller 中使用它

转载 作者:行者123 更新时间:2023-12-01 01:04:38 25 4
gpt4 key购买 nike

我的学校项目是为飞机公司的员工构建一个应用程序。我们决定将登录身份和我们的表与项目所需的数据结合起来。我们修改了注册表以使用身份中的电子邮件和密码以及员工表中的其他数据。这可以同时更新两个表。然后我们添加了 Angular 色(飞行员、机械师、空乘人员),选择 Angular 色后,JavaScript 会加载这些 Angular 色的附加选项(对于空乘人员,您可以选择他们所说的语言,对于机械师,您可以选择他们有权修理哪些飞机。对于飞行员,我们只需输入上次体检的日期)。飞行员工作得很好,但由于乘务员可以讲更多语言,并且机械师可以获得不止一种类型的飞机的许可,因此我们编写了 js,通过单击 + 图标来乘以这些特定的选择字段。然后我们不知道如何将这些多条数据返回到 Controller 中,以便它可以更新数据库。老师告诉我们收集 javascript 数组中选择的所有值(完成)并将其传递给 View 上的 viewbag。我们从来没有在类里面做过这样的例子,谷歌搜索后发现有很多将 viewbag 传递到 javascript 的方法,但反之则不然。老师告诉我们只需将 Controller 顶部的viewbag声明为null,然后将其填充到 View 上,并在 Controller 中需要的地方使用它来循环并将数据输入到数据库中。我只需要知道如何将 js 数组传递到 View 中的 viewbag 中,并且我假设我在 Controller 内部编写的代码将完成其余的工作

单击注册按钮时调用我的 js 代码(它将正确的 int 数组返回到控制台)

function Langs() {
var trig= document.querySelector(".trig")
let langs= [];
trig.onclick = () => {
let languages= document.querySelectorAll(".languages");

for (let language of languages) {
langs.push(Number(language.value));
}
langs= [...new Set(langs)];
console.log(langs);
return langs;
}
}

在我的 Controller 内部,我有这样的循环:

foreach (var item in ViewBag.JeziciZaUnos)
{
Attendant att= new Attendant(){
att.attId= model.Employee.empId,
att.langId = Convert.ToInt32(item)
}
db.Attendant.Add(att);
await db.SaveChangesAsync();
}

每次尝试将 JS 数组传递到此 viewbag 中(无论是直接从 Controller 还是在 View 中)都会失败,并且 C# 只会看到一个字符串,例如“Langs();”而不是js函数。

如何将此 JS 数组放入 viewbag,或者是否有其他方法从重复的选择框中收集多个值,并在 Controller 端循环它们?

最佳答案

我宁愿建议您通过 AJAX 调用您想要的事件将数据传递到 Controller 。 Here is the example对我来说,使用 ViewBag 来实现这一点似乎是徒劳的。

关于javascript - 将数组从 JavaScript 传递到 viewbag 并在 Controller 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55760633/

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