在ASP.NET Core MVC中创建实体列表

Clhereistian

我想在ASP.NET Core MVC中创建一个实体。实体代表锻炼锻炼,并且具有一系列锻炼子集:

public class Workout
{
    public DateTime Date { get; set; }        
    public string Name { get; set; }
    public string Description { get; set; }

   public virtual ICollection<Set> Sets { get; set; }
}

public class Set
{
    public int Id { get; set; }
    public int ExerciseId { get; set; }
    public int WorkoutId { get; set; }
    public decimal Weight { get; set; }
    public int Reps { get; set; }

    public virtual Exercise Exercise { get; set;  }
    public virtual Workout Workout { get; set; }
}

该表格如下所示:

在此处输入图片说明

“添加集”按钮使用JavaScript将一组与“集”相关的字段添加到表单中,因此可以有任意数量的“集”相关字段。

这是包含表单的视图的现有代码:

    @model Weightlifting.Models.Workout

@{
    ViewData["Title"] = "Add Workout";
}

<h2>Add Workout</h2>

<form asp-action="Create">
    <div class="form-horizontal">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="Date" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="Date" class="form-control" />
                <span asp-validation-for="Date" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="Name" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="Name" class="form-control" />
                <span asp-validation-for="Name" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="Description" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="Description" class="form-control" />
                <span asp-validation-for="Description" class="text-danger" />
            </div>
        </div>        
        <div class="form-group">
            <fieldset class="form-add-set">
                <label for="sets" class="col-md-2 control-label">Sets</label>
                <div class="col-md-10">
                    <div class="add-sets">
                        <div class="form-inline add-set">
                            <div class="form-group">
                                <label class="control-label">Exercise</label>
                                <select class="form-control" asp-items="ViewBag.Exercises"></select>                               
                            </div>
                            <div class="form-group">                                                               
                                    <label asp-for="Sets.First().Reps" class="control-label"></label>
                                    <input asp-for="Sets.First().Reps" placeholder="Reps" class="form-control" />
                                    <span asp-validation-for="Sets.First().Reps" class="text-danger" />                               
                            </div>
                            <div class="form-group">
                                <label asp-for="Sets.First().Weight" class="control-label"></label>
                                    <input asp-for="Sets.First().Weight" class="form-control" />
                                    <span asp-validation-for="Sets.First().Weight" class="text-danger" />
                            </div>
                            <div class="form-group">
                                <button class="btn btn-remove-set" data-toggle="tooltip" title="Remove Set"><span class="glyphicon glyphicon-minus"></span></button>
                            </div>
                        </div>                    
                    </div>
                    <button class="btn btn-add-set">Add Set</button>
                </div>
            </fieldset>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-primary" />
            </div>
        </div>
    </div>
</form>

<div>
    <a asp-action="Index"><span class="glyphicon glyphicon-arrow-left"></span> Back</a>
</div>

@section Scripts {
<script type="text/javascript">
    $(document).ready(function () {     
        var wrapper = $('.add-sets');

        $(".btn-add-set").click(function(e) {
            e.preventDefault();
            $('.add-set:first-child').clone(true).appendTo(wrapper);

            $('.add-set .btn-remove-set').show();
        });

        $('.btn-remove-set').click(function (e) {
            e.preventDefault();
            $(this).parents('.add-set').remove();

            removeButton();
        });

        function removeButton() {
            if ($('.add-set').length == 1) {
                $('.add-set .btn-remove-set').hide();
            }
        }
    });
</script>
}

这是视图发布到的控制器操作:

public async Task<IActionResult> Create([Bind("Id,Date,Description,Name")] Workout workout)
{
    // do stuff
}

我的问题是:如何编码表格,以便将“ Sets”发布到锻炼模型中的Set集合中?

艾玛(Ahmar)

[Bind("Id,Date,Description,Name")]从您的操作方法中删除

public async Task<IActionResult> Create(Workout workout)
{
    // do stuff
}

然后Set像这样属性应用索引

<div class="form-inline add-set">
                                <div class="form-group">
                                    <label class="control-label">Exercise</label>
                                    <select name="Sets[0].ExerciseId" class="form-control"><option value="1">Push Up</option>
    <option value="1">Set Up</option>
    </select>

<div class="add-sets">
    <div class="form-inline add-set">
        <div class="form-group">
            <label class="control-label">Exercise</label>
            <select name="Sets[0].ExerciseId" class="form-control" asp-items="ViewBag.Exercises"></select>
        </div>
        <div class="form-group">
            <label asp-for="Sets.First().Reps" class="control-label"></label>
            <input asp-for="Sets.First().Reps" name="Sets[0].Reps" placeholder="Reps" class="form-control" />
            <span asp-validation-for="Sets.First().Reps" class="text-danger" />
        </div>
        <div class="form-group">
            <label asp-for="Sets.First().Weight" class="control-label"></label>
            <input asp-for="Sets.First().Weight" name="Workout.Sets[0].Weight" class="form-control" />
            <span asp-validation-for="Sets.First().Weight" class="text-danger" />
        </div>
        <div class="form-group">
            <button class="btn btn-remove-set" data-toggle="tooltip" title="Remove Set"><span class="glyphicon glyphicon-minus"></span></button>
        </div>
    </div>
</div>

动态添加新行时,请确保索引编号必须是连续的,并从0开始且不要跳过任何迭代。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有在SingleView中创建的实体列表的Asp.Net Core MVC EF模型

来自分类Dev

无法使用 EF Core 在 ASP.NET Core 中创建相关实体

来自分类Dev

InvalidOperationException:序列不包含任何元素。在带有实体框架的Asp.net Core MVC中

来自分类Dev

带有实体框架的ASP.NET Core MVC中的索引方法不接受参数

来自分类Dev

在asp net core实体框架mvc中从数据库绑定菜单和子菜单

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在ASP.NET Core中设置实体框架

来自分类Dev

ASP.NET Core 3 MVC:对象列表的模型绑定

来自分类Dev

ASP.NET Core MVC视图附件

来自分类Dev

在.net core MVC中同时创建实体,关系和相关实体

来自分类Dev

如何从ASP.NET MVC中的枚举创建下拉列表?

来自分类Dev

在ASP.NET MVC中创建下拉列表

来自分类Dev

在asp.net MVC中为dropdownlist创建列表

来自分类Dev

如何在 ASP.Net MVC 中创建下拉列表

来自分类Dev

不将数据列表返回到ASP.NET Core MVC中的索引视图

来自分类Dev

在asp.net core 3 MVC中包含列表属性的模型的表单

来自分类Dev

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

来自分类Dev

创建项目ASP.NET Core(.NET Core)和ASP.NET Core(.NET Framework)有什么区别

来自分类Dev

ASP.NET Core中的属性

来自分类Dev

ASP.Net Core中的动态路由

来自分类Dev

ASP.NET Core中的加密配置

来自分类Dev

Asp.net Core中的UserHostAddress

来自分类Dev

ASP.NET Core 1.0中的会话

来自分类Dev

ASP.NET Core中的依赖注入

来自分类Dev

在ASP.NET Core中禁用分块

来自分类Dev

ASP.NET Core中的属性注入

来自分类Dev

在ASP.NET Core中替代GetUserManager

来自分类Dev

ASP.NET Core中的服务总线

Related 相关文章

  1. 1

    具有在SingleView中创建的实体列表的Asp.Net Core MVC EF模型

  2. 2

    无法使用 EF Core 在 ASP.NET Core 中创建相关实体

  3. 3

    InvalidOperationException:序列不包含任何元素。在带有实体框架的Asp.net Core MVC中

  4. 4

    带有实体框架的ASP.NET Core MVC中的索引方法不接受参数

  5. 5

    在asp net core实体框架mvc中从数据库绑定菜单和子菜单

  6. 6

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

  7. 7

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

  8. 8

    在ASP.NET Core中设置实体框架

  9. 9

    ASP.NET Core 3 MVC:对象列表的模型绑定

  10. 10

    ASP.NET Core MVC视图附件

  11. 11

    在.net core MVC中同时创建实体,关系和相关实体

  12. 12

    如何从ASP.NET MVC中的枚举创建下拉列表?

  13. 13

    在ASP.NET MVC中创建下拉列表

  14. 14

    在asp.net MVC中为dropdownlist创建列表

  15. 15

    如何在 ASP.Net MVC 中创建下拉列表

  16. 16

    不将数据列表返回到ASP.NET Core MVC中的索引视图

  17. 17

    在asp.net core 3 MVC中包含列表属性的模型的表单

  18. 18

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

  19. 19

    创建项目ASP.NET Core(.NET Core)和ASP.NET Core(.NET Framework)有什么区别

  20. 20

    ASP.NET Core中的属性

  21. 21

    ASP.Net Core中的动态路由

  22. 22

    ASP.NET Core中的加密配置

  23. 23

    Asp.net Core中的UserHostAddress

  24. 24

    ASP.NET Core 1.0中的会话

  25. 25

    ASP.NET Core中的依赖注入

  26. 26

    在ASP.NET Core中禁用分块

  27. 27

    ASP.NET Core中的属性注入

  28. 28

    在ASP.NET Core中替代GetUserManager

  29. 29

    ASP.NET Core中的服务总线

热门标签

归档