代码之家  ›  专栏  ›  技术社区  ›  Kalle Svensson

如何在Asp中将列表从视图发布到映射到viewModel的控制器。net core?

  •  2
  • Kalle Svensson  · 技术社区  · 7 年前

    这是我的ViewModel

    public class VideoViewModel
    {
        public string Movie { get; set; }
        public int Order { get; set; }
    
        public IList<VideoContent> VideoContents { get; set; }
    }
    

    如何将视图中字段的数据传递给映射到viewModel中集合的控制器?

    在我看来,这段代码正在将电影和订单传递给控制器,但我想不出何处也可以发送收藏。

    @model ViewModels.VideoViewModel
        <form method="post">
            <div class="form-group">
                <label for="movie">Movie</label>
                <input type="text" name="Movie" id="movie" class="form-control">
            </div>
            <div class="form-group">
                <label for="order">Order</label>
                <input type="text" name="Order" id="order" class="form-control">
            </div>            
            <button type="submit" class="btn btn-primary">Add to database</button>
        </form>
    

    提前感谢!

    /卡尔

    1 回复  |  直到 7 年前
        1
  •  5
  •   Hello It's me    7 年前

    ASP。NET Core使用name属性将输入字段中的数据绑定到视图模型。

    这应该可以用于传递集合。

    for(int c = 0; c < VideoContents.Count; c++)
    {      
        <input name="VideoContents[@c].FirstProperty" value="@Model.VideoContents[@c].FirstProperty"/>
        <input name="VideoContents[@c].SecondProperty" value="@Model.VideoContents[c].SecondProperty"/>
    }