Asp.net Core MVC 通过JS动态添加Select List

奇拉格·帕特尔

我试图提供一个视图,人们可以在其中创建类别和子类别的列表。因此我需要允许用户动态添加行。每行将允许用户添加一个类别,然后如果他们想要一个子类别。对于第一行,我能使用ASP的项目属性绑定到的SelectList在我ViewBag,但是当我添加一个新行通过JS我不能做到这一点,我已经尝试了2种方法JS(在代码中所示):

  • 1 - 将 SelectList 存储在变量中并循环遍历它
  • 2 - 将 asp-items 设置为 SelectList

有谁知道如何填充新添加的行?另外我将如何将数据中的输入绑定到我的模型;它必须在控制器中完成吗?

代码如下:

<script type="text/javascript">
    $(document).ready(function () {
        var categories = "@ViewBag.Categories";
        var catOptions = '';
        for (var i = 0; i < categories; i++) {
            catOptions = catOptions + '<option value="' + categories[i].CategoryId + '">' + categories[i].Name + '</option>'
        }

        $(document).on("click", "#btnAddCat", function () {
            var newCat =''+
                '<tr class="categorieRows">' +
                    '<td colspan="2">' +
                '<select>' +
                    catOptions +
                '</select>' +
                    '</td>' +
                    '<td>' +
                        '<button type="button" id="btnAddSubCat" class="btn btn-xs btn-primary classAdd">Add Sub Category</button>' +
                    '</td>' +
                '</tr>';
            $('#categoryTable').append(newCat);
        });

        $(document).on("click", "#btnAddSubCat", function () {
            var newSubCat = '' +
                '<tr class="categorieRows">' +
                    '<td></td>' +
                    '<td>' +
                        '<select asp-items="ViewBag.SubCategories"></select>' +
                    '</td>' +
                    '<td></td>' +
                '</tr>';
            $('#categoryTable').append(newSubCat);
        });
    });
</script>
@model IEnumerable<Categories>

@{
    ViewData["Title"] = "Create";
}

<h2>Create</h2>

<h4>Surveys</h4>
<hr />
<table class="table table-striped" id="categoryTable">
    <thead>
        <tr>
            <th>
                Category
            </th>
            <th>
                Sub Categories
            </th>
            <th>
                <button type="button" id="btnAddCat" class="btn btn-xs btn-primary classAdd">Add Category</button>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr class="categorieRows">
            <td colspan="2">
                <select asp-items="ViewBag.Categories"></select>
            </td>
            <td>
                <button type="button" id="btnAddSubCat" class="btn btn-xs btn-primary classAdd">Add Sub Category</button>
            </td>
        </tr>
    </tbody>
</table>

<div>
    <a asp-action="Index">Back to List</a>
</div>

奇拉格·帕特尔

使用 Ajax 调用来检索类别数据:

<script>
    $(document).ready(function () {
        $(document).on("change", "#selectCategroy", function () {
            var subCat = this;
            $.ajax({
                url: "ReturnJsonSubCategories/?categoryId=" + $(subCat).val(),
                type: "GET",
                contentType: "application/json; charset=utf-8",
                datatype: JSON,
                success: function (result) {
                    var categories = "";
                    $(result).each(function () {
                        categories = categories + '<option value="' + this.subCategoryId + '">' + this.name + '</option>'
                    });

                    var subCateList = $("#selectSubCategroy");
                    subCateList.empty();
                    subCateList.append(categories);
                },
                error: function (data) {
                    return "Error";
                }
            });
        });
    });
</script>

服务器端代码如下所示:

public JsonResult ReturnJsonSubCategories(int categoryId)
    {
        var jsonData = _context.SubCategories.Where(x => x.CategoryId == categoryId).ToList();
        return Json(jsonData);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 ASP .Net Core MVC 2.1 模型中访问 List<T>

来自分类Dev

ASP.NET MVC Core - 通过 HttpClient 使用 API

来自分类Dev

ASP.NET MVC Core:添加IdentityUser后发生错误

来自分类Dev

使用 Chart.js 和动态数据加载图表 ASP.net MVC-Core

来自分类Dev

ASP .Net Core MVC RoleManager Roles To List Retun Object reference not set to an instance of an object

来自分类Dev

ASP.NET Core MVC视图附件

来自分类Dev

与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

来自分类Dev

ASP.NET Core MVC + Entity Framework Core如何获取新添加的对象的ID

来自分类Dev

ASP.NET Core MVC 和 EF Core 1.1

来自分类常见问题

在ASP.NET Core MVC中在运行时动态绑定模型

来自分类Dev

使用MVC和ASP.Net Core进行动态URL重写

来自分类Dev

在ASP.NET Core MVC中在运行时动态绑定模型

来自分类Dev

ASP.NET MVC 6(ASP.NET Core或ASP.NET5)中的友好URL

来自分类Dev

在ASP.NET Core MVC中通过控制器从数据库读取信息

来自分类Dev

ASP.NET Core MVC如何通过剃须刀设置``必需''属性

来自分类Dev

如何通过Razor Pages扩展ASP.NET Core MVC项目?

来自分类Dev

无法将文件上传功能添加到项目-ASP.Net MVC Core 3.0

来自分类Dev

如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

来自分类Dev

jQuery添加的ASP.NET Core MVC链接不起作用

来自分类Dev

如何在asp.net core MVC应用程序中添加页面列表?

来自分类Dev

查看ASP.NET MVC与ASP.NET Core MVC之间的目录编译时间差

来自分类Dev

Bower ASP.NET Core MVC缺少jquery.validate.js文件

来自分类Dev

如何将包含js对象的列表转发到ASP.NET Core MVC?

来自分类Dev

ASP.NET MVC Core 3.1应用程序中CSHTML更改,JS更改所需的生成

来自分类Dev

如何在ASP.NET Core MVC中将js字符串发布到C#

来自分类Dev

Bower ASP.NET Core MVC缺少jquery.validate.js文件

来自分类Dev

通过不带干扰的验证以asp.net mvc形式动态添加bootstraph glyphicon

来自分类Dev

向ASP.NET Core MVC 2.1选择asp-for控件添加一个空的“请选择”选项

来自分类Dev

如何从Web API调用ASP.NET Core Web MVC

Related 相关文章

  1. 1

    在 ASP .Net Core MVC 2.1 模型中访问 List<T>

  2. 2

    ASP.NET MVC Core - 通过 HttpClient 使用 API

  3. 3

    ASP.NET MVC Core:添加IdentityUser后发生错误

  4. 4

    使用 Chart.js 和动态数据加载图表 ASP.net MVC-Core

  5. 5

    ASP .Net Core MVC RoleManager Roles To List Retun Object reference not set to an instance of an object

  6. 6

    ASP.NET Core MVC视图附件

  7. 7

    与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

  8. 8

    ASP.NET Core MVC + Entity Framework Core如何获取新添加的对象的ID

  9. 9

    ASP.NET Core MVC 和 EF Core 1.1

  10. 10

    在ASP.NET Core MVC中在运行时动态绑定模型

  11. 11

    使用MVC和ASP.Net Core进行动态URL重写

  12. 12

    在ASP.NET Core MVC中在运行时动态绑定模型

  13. 13

    ASP.NET MVC 6(ASP.NET Core或ASP.NET5)中的友好URL

  14. 14

    在ASP.NET Core MVC中通过控制器从数据库读取信息

  15. 15

    ASP.NET Core MVC如何通过剃须刀设置``必需''属性

  16. 16

    如何通过Razor Pages扩展ASP.NET Core MVC项目?

  17. 17

    无法将文件上传功能添加到项目-ASP.Net MVC Core 3.0

  18. 18

    如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

  19. 19

    jQuery添加的ASP.NET Core MVC链接不起作用

  20. 20

    如何在asp.net core MVC应用程序中添加页面列表?

  21. 21

    查看ASP.NET MVC与ASP.NET Core MVC之间的目录编译时间差

  22. 22

    Bower ASP.NET Core MVC缺少jquery.validate.js文件

  23. 23

    如何将包含js对象的列表转发到ASP.NET Core MVC?

  24. 24

    ASP.NET MVC Core 3.1应用程序中CSHTML更改,JS更改所需的生成

  25. 25

    如何在ASP.NET Core MVC中将js字符串发布到C#

  26. 26

    Bower ASP.NET Core MVC缺少jquery.validate.js文件

  27. 27

    通过不带干扰的验证以asp.net mvc形式动态添加bootstraph glyphicon

  28. 28

    向ASP.NET Core MVC 2.1选择asp-for控件添加一个空的“请选择”选项

  29. 29

    如何从Web API调用ASP.NET Core Web MVC

热门标签

归档