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

标签 javascript c# asp.net entity-framework asp.net-identity

我的学校项目是为飞机公司的员工构建一个应用程序。我们决定将登录身份和我们的表与项目所需的数据结合起来。我们修改了注册表以使用身份中的电子邮件和密码以及员工表中的其他数据。这可以同时更新两个表。然后我们添加了 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/

相关文章:

javascript - 在 javascript 中创建第二个 html 元素会删除第一个元素

c# - WCF 自定义 JSONP 绑定(bind)和 httpsTransport

c# - 带列表的 Razor 表单

c# - 使用数据注释的多对多映射

javascript - 提交隐藏表单字段

javascript - jquery.ui 可排序问题

javascript - 没有巨大的行间距不能垂直对齐多行

javascript - 无法在 React 中返回带有地理位置坐标的 JSX

c# - 将列表转换为带单引号的字符串

c# - WebAPI 无法解析 multipart/form-data post