我最近在C#中使用MVC模式执行采购订单程序(不是ASP.NET Web应用程序,只是桌面程序)。现在的问题是在UI中有很多按钮会链接到另一个部分,比如我可以点击订单页面并转到库存页面。每个部分当然都有自己的一套MVC。
如何在保持抽象的同时将按钮连接到其他控制器?也就是说,每个视图都不必了解其他控制器的工作方式,或者工作所需的参数。
我想到了一些设计可能性,但我不知道哪一个更好/更简单:
脏方法:只需将引用放在一个视图中的所有必需控制器上,但这样可以减少抽象。
共享视图空间:每个按钮都是一个不同的视图,它有自己的控制器,但我需要有某种类型的视图管理器。
路由:非常像ASP。 NET RedirectToAction,创建一个使用通用类型(如字符串)的自定义路由器来确定哪个控制器和要执行的操作
每个动作的自定义按钮:对于每个控制器和每个动作,我只为它制作一个按钮类。然后我需要一种方法让视图为每个按钮提供所需的参数。
有关我该怎么做的任何建议?
答案 0 :(得分:0)
我认为你应该为#34;共享视图"即在包含所有按钮及其调用的共享视图上创建(如果这对您不起作用),则可以在其控制器中创建WebAPI的saprate调用以获取日期作为回报。
答案 1 :(得分:0)
我决定对我的第四个选项进行修改,这是一个创建所有按钮的工厂模式。工厂将获得所有控制器的参考,并相应地初始化所有按钮。
视图在施工期间只需要这个工厂,并要求它可以生成任何按钮。
这样,视图在构造期间不需要知道控制器的任何信息。控制器也根本不需要了解视图。
感谢大家分享他们的意见。