我应该使用相同的控制器和视图来编辑和创建ASP.NET MVC中的模型吗?

时间:2008-12-30 10:29:18

标签: asp.net-mvc

我应该在ASP.NET MVC中使用相同的控制器和视图来编辑和创建模型,还是应该创建用于创建的视图和控制器操作以及用于编辑的视图和控制器操作?

编辑视图当然可能有所不同 - 编辑对象的用户界面与创建视图相同并不总是有意义的

通过分离视图,我将避免大量“if语句”来确定我是在编辑还是创建......

思想?

2 个答案:

答案 0 :(得分:2)

我看到的建议表明,观点与控制中包含的共同元素是分开的,以保持DRY。

采用与控制器相同的方法似乎是合乎逻辑的 - 在适当的情况下重用公共部分。

此视图在How to cleanly reuse edit / new views in Asp.NET MVC处反映,因为问题非常相似。

答案 1 :(得分:0)

建议使用AFAIK :(示例中使用的人)

使用一个控制器处理两种情况

在该控制器中,有四个动作:

  • 新()
  • 编辑(int personId)
  • 创建(人物p)
  • 更新(人物p)

两个视图,Person / New.aspx和person / Edit.aspx

两个视图都包含发布到各自操作的表单:

  • 新 - >创建
  • 编辑 - >更新

现在你有两个选择,要么两次实现表单内容(在每个视图中),要么在PersonForm.ascx中实现实际表单,并使用部分呈现来呈现表单内容。

你选择在这里选择最后一个的方式取决于表格是或多或少相同(寻求共同控制)或者它们是不同的(实现两个不同的)

如果只是新/编辑表单中不同布局的问题,您可能只想引用不同的css文件并让css处理差异