我需要制作3个步骤的表单向导。每个步骤都可以分开保存在数据库中。步骤将是输入有关公司的信息,然后是他的出版物,最后是他的预订。
我应该将所有逻辑放在一个控制器还是不同的控制器中?我的第一个想法是在一个控制器,因为这是关于管理公司,但问题是我将在控制器和View文件夹中有很多代码,我将有20个网页。
有没有办法将子文件夹放在View \ Companies \文件夹中,以便我可以使用View \ Compangies \ Publications。这样,我就可以为每个主题分开网页。
或者你是如何管理的?有没有更好的方法来正确处理向导表单?
亚历
答案 0 :(得分:1)
取决于模特。如果您的出版物是他们自己的实体,并且他们最终被存储(在DB中)在他们自己的表中,那么他们拥有自己的控制器可能是正确的方式。与预订相同。如果您将这两个存储为公司实体的一部分,那么他们留在公司控制器中可能会更好。但在我看来,它们应该是分开的。
关于控制器操作之间的重定向,您始终可以使用RedirectToAction()在同一控制器内重定向。
您还可以使用MVC Futures项目及其RedirectToAction()扩展,您还可以在不同的控制器之间重定向。
FWIW,我认为如果您正在编辑具有自己的属性等的发布,它属于自己的实体,因此他们需要拥有自己的模型,控制器和随后的视图(在根目录下的单独View文件夹中)意见)。
更新:
看起来像这样的路线出了什么问题:
使用{companyId}
为公司创建出版物/Publication/Create/{companyId}
或
编辑标识为{publicationId}的出版物和具有{companyId}
的公司/Publication/Edit/{companyId}/{publicationId}
或者,无论公司身份如何,出版物ID都是唯一的
/Publication/Edit/{publicationId}