从Razor页面传递列表到后面的代码,以使用Dapper批量插入

问题描述 投票:-1回答:1

因此,我在Razor页面上创建了一个HTML表,如下所示。基本上,我只是调用一个返回列表的方法,然后使用foreach来创建行和控件。我完全迷失的部分是如何将这些数据发布回服务器,以及如何使用该数据插入回SQL Server的代码。我正在使用Dapper,并且希望表的每一行代表一个数据行或一个对象,但是如何从Razor页面中获取作为类列表返回的数据呢?不确定我的术语在这里是否正确,但是您可以对类型列表进行绑定建模吗?希望得到一些帮助,谢谢!

Table

Code sample

asp.net-core razor dapper dapper-contrib
1个回答
0
投票

似乎我走得太远了(或者很少人使用asp.net core和Dapper),所以我没有得到任何帮助。但是有人非常乐于助人地写下我的问题,没有发表评论-非常感谢。

我意识到我做错的关键是试图规避模型绑定,所以我创建了一个类/类型Rating,它表示每一行(每列作为属性),然后创建一个评估类型/类,其中包含一个List属性。

在剃刀页面上:

@foreach (Comp c in Model.GetComps())
        {                
            count++;
            Model.assessment.Ratings.Add(new Rating());
            Model.assessment.Ratings[count].AchievedCompetencyID = c.AchievedCompetencyID;

后面的代码:

public void OnPost()
    {
        using (IDbConnection con = new SqlConnection(Startup.conStr))
        {
            long assessID = con.Insert(assessment);
            foreach (Rating r in assessment.Ratings)
            {
                r.AssessmentID = Convert.ToInt32(assessID);
                con.Insert(r);
            }

        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.