我的<UserChecklist>
中有一个<List>
,其数据类型为ListViewModel
,其中包含用于从数据库检索数据的属性。
这是我的ListViewModel
:
public class ListViewModel
{
public List<ListViewModel> UserChecklist { get; set; }
public int ItemID { get; set; }
public string CheckItem { get; set; }
public int SelectID { get; set; }
public string Comments { get; set; }
}
请注意,在我的数据库ItemID
中是唯一行。
这是我的表格的一个示例(为简单起见,对行进行了编辑):
该下拉菜单包含3个选项,注释是文本框的输入类型。
这是从我的UserController
上的数据库中检索结果的代码:
foreach (var item in db_RIRO.sp_GetUserChecklist(Session["EID"].ToString()))
{
vm.UserChecklist.Add(new ListViewModel()
{
ItemID = item.ItemID,
CheckItem = item.CheckItem,
CheckID = item.CheckID,
Comments = item.Comments
});
}
最后这是我的存储过程:
CREATE PROCEDURE sp_UpdateUserForm
@UserID INT,
@ItemID INT,
@CheckID INT,
@Comments VARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
UPDATE tblUser_Checklist
SET CheckID = @CheckID,
Comments = @Comments
WHERE ItemID = @ItemID AND UserID = @UserID;
END
GO
我没有尝试过的未完成的伪代码:
[HttpPost]
public ActionResult UpdateForm (ListViewModel lstviewodel)
{
foreach(var item in vm.UserChecklist)
{
// update each row
}
}
我想做的是更新表的每一行并在每一行执行一个存储过程。我该怎么做?