我希望将MVC 5项目中的一些控制器功能卸载到单个功能中。两个视图都是从基础视图继承传递的。
CompetitionsViewModel:CompRegisterViewModel
到目前为止,这似乎有效:
private async Task<bool> RegisterUser(RegisterViewModel model, string returnUrl = "")
{...}
致电代码:
bool passed = await RegisterUser(model);
但有几个问题:
基本上这里发生的事情是我有一个能够注册的购物车。您也可以独立于购物车注册,因此我使用共享视图进行注册。因此,两个父视图都实现子视图,因此视图模型的继承似乎是最智能的路径。
我在表中看到的选项是:在两个控制器功能中重新创建进程(重复代码?维护噩梦),创建一个接口(在添加字段/更改字段时必须在多个位置更新?),或者做我做的 - 一个处理两者的函数,而调用方法处理它们的非继承功能。
您是否看到了第四个更好的选择,或者我的解决方案是否可以接受?
答案 0 :(得分:1)
这个问题的答案如下: