Asp.net core 将列表从Razor页面传递到code behind,然后使用Dapper批量插入

Asp.net core 将列表从Razor页面传递到code behind,然后使用Dapper批量插入,asp.net-core,razor,dapper,Asp.net Core,Razor,Dapper,因此,我在Razor页面上创建了一个HTML表,如下所示。基本上,我只是调用一个返回列表的方法,然后使用foreach来创建行和控件。我完全搞不懂的是如何将这些数据发回服务器,以及如何使用这些数据将代码插入回SQL server。我使用的是Dapper,我希望表中的每一行都表示一个数据行或一个对象,但是如何从Razor页面获取作为类列表传回的数据呢?不确定我的术语在这里是否准确,但你能在类型列表上建模绑定吗?非常感谢您的帮助,谢谢 看来我离目标太远了(或者说很少有人使用asp.net core

因此,我在Razor页面上创建了一个HTML表,如下所示。基本上,我只是调用一个返回列表的方法,然后使用foreach来创建行和控件。我完全搞不懂的是如何将这些数据发回服务器,以及如何使用这些数据将代码插入回SQL server。我使用的是Dapper,我希望表中的每一行都表示一个数据行或一个对象,但是如何从Razor页面获取作为类列表传回的数据呢?不确定我的术语在这里是否准确,但你能在类型列表上建模绑定吗?非常感谢您的帮助,谢谢


看来我离目标太远了(或者说很少有人使用asp.net core和Dapper),所以我得不到任何帮助。但是有一位非常有帮助的人记下了我的问题,没有评论——非常感谢

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

在Razor页面上:

@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);
            }

        }
    }