在MVC中创建向导表单以及如何管理视图和控制器文件夹

时间:2010-08-26 17:31:58

标签: asp.net-mvc model-view-controller forms asp.net-mvc-2 wizard

我需要制作3个步骤的表单向导。每个步骤都可以分开保存在数据库中。步骤将是输入有关公司的信息,然后是他的出版物,最后是他的预订。

我应该将所有逻辑放在一个控制器还是不同的控制器中?我的第一个想法是在一个控制器,因为这是关于管理公司,但问题是我将在控制器和View文件夹中有很多代码,我将有20个网页。

有没有办法将子文件夹放在View \ Companies \文件夹中,以便我可以使用View \ Compangies \ Publications。这样,我就可以为每个主题分开网页。

或者你是如何管理的?有没有更好的方法来正确处理向导表单?

亚历

1 个答案:

答案 0 :(得分:1)

取决于模特。如果您的出版物是他们自己的实体,并且他们最终被存储(在DB中)在他们自己的表中,那么他们拥有自己的控制器可能是正确的方式。与预订相同。如果您将这两个存储为公司实体的一部分,那么他们留在公司控制器中可能会更好。但在我看来,它们应该是分开的。

关于控制器操作之间的重定向,您始终可以使用RedirectToAction()在同一控制器内重定向。

您还可以使用MVC Futures项目及其RedirectToAction()扩展,您还可以在不同的控制器之间重定向。

FWIW,我认为如果您正在编辑具有自己的属性等的发布,它属于自己的实体,因此他们需要拥有自己的模型,控制器和随后的视图(在根目录下的单独View文件夹中)意见)。

更新:

看起来像这样的路线出了什么问题:

使用{companyId}

为公司创建出版物
/Publication/Create/{companyId}

编辑标识为{publicationId}的出版物和具有{companyId}

的公司
/Publication/Edit/{companyId}/{publicationId}

或者,无论公司身份如何,出版物ID都是唯一的

/Publication/Edit/{publicationId}