首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC 5控制器方法整合

MVC 5控制器方法整合
EN

Stack Overflow用户
提问于 2015-10-17 16:56:05
回答 1查看 116关注 0票数 0

我希望将MVC 5项目中的一些控制器功能卸载到单个函数中。传入的两个视图都是从基视图继承的。

代码语言:javascript
运行
复制
CompetitionsViewModel:CompRegisterViewModel

到目前为止,这似乎是可行的:

代码语言:javascript
运行
复制
        private async Task<bool> RegisterUser(RegisterViewModel model, string returnUrl = "")
            {...}

呼叫代码:

代码语言:javascript
运行
复制
bool passed = await RegisterUser(model);

不过,有关这方面的几个问题:

  1. 当其中一个控制器使用从另一个视图继承的视图,而您想要一个分离的函数时,这是正确的方法吗?
  2. 在这个函数中使用异步有什么值得我关注的吗?-模型错误(ModelState.AddModelError)在这个函数中是否会像预期的那样工作?一切似乎都在表面上工作,但在此之前,我确实有大量的自定义JQuery处理广泛的错误更正。
  3. 尽管这是一个异步过程,但模型是否仍然会作为参考(现在不太关心,但只是为了将来的知识)而被传递。

基本上,这里发生的是,我有一个手推车,有能力注册。您也可以独立于购物车注册,因此我使用共享视图进行注册。因此,两个父视图都实现子视图,因此视图模型的继承似乎是最智能的路径。

我在表中看到的选项是:在两个控制器函数(重复代码?..maintenance噩梦)中重新创建进程,创建一个接口(在添加字段/更改字段时必须在多个地方进行更新?),或者执行我所做的操作--一个处理两者的单个函数,而调用方法处理它们的非继承功能。

你认为第四个更好的选择,还是我的解决方案似乎可以接受?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 14:41:32

这个问题的答案如下:

  1. 对最佳实践仍不确定,但效果很好。
    • 至于这是否被认为是好做法,我会发现复制代码是非常糟糕的做法,所以把它当作是什么。

  1. 它工作得很好-- AddModelError,等等。
  2. 对象在正常情况下是通过引用传递的,所以我现在假设“是”。如果我遇到问题就会更新。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33189167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档