C#MVC-在同一页面中使用多个表的CRUD操作
我完全理解MVC脚手架和CRUD操作。但是,只有一个表(模型)是这种情况。如果我必须更新同一页面中的多个表,我将如何更新?假设我需要更新表1、表2和表3。以下是我的代码: 型号:C#MVC-在同一页面中使用多个表的CRUD操作,c#,asp.net-mvc,crud,C#,Asp.net Mvc,Crud,我完全理解MVC脚手架和CRUD操作。但是,只有一个表(模型)是这种情况。如果我必须更新同一页面中的多个表,我将如何更新?假设我需要更新表1、表2和表3。以下是我的代码: 型号: public class MultipleTableModel { public List<Database.Table1> Table1 { get; set; } public List<Database.Table2> Table2 { get; set; }
public class MultipleTableModel
{
public List<Database.Table1> Table1 { get; set; }
public List<Database.Table2> Table2 { get; set; }
public List<Database.Table3> Table3 { get; set; }
}
同样,我对表2和表3重复foreach循环。最后,submit按钮将整个表单提交给其控制器。我尝试在控制器中接收这些值的方式如下:
[HttpPost]
public ActionResult Edit(Table1 t1, Table2 t2, Table3 t3)
{
*code to maniupate t1, t2, t3*
return View();
}
或者我甚至可以尝试:
[HttpPost]
public ActionResult Edit(MultipleTableModel allTables)
{
*code to maniupate allTables*
return View();
}
第一个方法对我不起作用,返回了所有null。我还没有试过第二种方法,这只是一个想法,不确定它是否有效
我的问题是,有没有可能做我正在尝试的事情?通过创建包含所有其他模型(表1、表2等)的新模型(MultipleTableModel),在同一页面上实现多个模型的CRUD操作。或者还有其他(更好、更容易)的方法吗
谢谢。通过“返回全部空值”您的意思是t1、t2和t3都为空吗?@SamIam yes t1 t2和t3都为空您不能使用
foreach
循环为集合中的项目生成表单控件。您需要为循环使用,或为每种类型使用自定义编辑器或模板。请参阅以获取解释。在任何情况下,如果编辑数据不使用数据模型,POST方法都需要是public ActionResult Edit(MultipleTableModel allTables)
。为每种类型创建视图模型,以便父视图模型包含属性public List Table1{get;set;}
etcby“returned all null”您的意思是t1、t2和t3都是null吗?@SamIam yes t1 t2和t3都是null您不能使用foreach
循环为集合中的项生成表单控件。您需要为循环使用,或为每种类型使用自定义编辑器或模板。请参阅以获取解释。在任何情况下,如果编辑数据不使用数据模型,POST方法都需要是public ActionResult Edit(MultipleTableModel allTables)
。为每种类型创建视图模型,以便父视图模型包含属性公共列表表1{get;set;}
等
[HttpPost]
public ActionResult Edit(MultipleTableModel allTables)
{
*code to maniupate allTables*
return View();
}