gpt4 book ai didi

asp.net-mvc - Web Api 和 Controller 矫枉过正

转载 作者:行者123 更新时间:2023-12-04 16:11:14 25 4
gpt4 key购买 nike

我开始将 WebApi 和 OData 集成到测试平台应用程序中。让我们保持简单并坚持使用一个域实体 Customer。显然我会有一个 MVC Controller 。搜索得到它自己的 View 模型(基于 Lucene 索引),所以这将是单独的 Controller ,现在是 ODataController。但是由于 View /编辑页面将拥有自己的 View 模型,因此它们将成为自己的 Controller 。这开始感觉有点矫枉过正。

试图找出一个好的设计来完成这项工作,并且仍然使用表示实体的 URL 的想法。 URL 中的实体是否应该是 Customer 并且我以某种方式根据 URL 参数提供不同的表示?或者 Customer/CustomerSearch/CustomerEdit 应该是不同的实体(这听起来不对)?

最佳答案

我假设这个 WebAPI 应用程序将是一个独立于您要构建的 ASP.NET MVC 解决方案的解决方案。简而言之,WebAPI 将是业务/领域层,而 MVC 将是表示层。

所以,说到WebAPI解决方案,你只需要一个ApiController对于您上面介绍的客户示例。 View /编辑请求可能有自己的 View 模型……或者没有。根据您制作 View 模型的方式,您可以为客户创建一个 View 模型,或者您可以开发一个客户 View 层次结构,其中基本 View 模型保存与搜索相关的数据,后代 View 模型充实细节.

您的路由请求可能如下所示:

GET - /Customer/                  retrieve multiple customers 
(supplying OData parameters in query string)
GET - /Customer/{id} retrieve a single customer
PUT - /Customer/{id} edit customer

看起来你需要两条路线,一条 ApiController客户,以及您所描述的三种请求方法。我不建议单独使用 ApiController对于 OData,因为功能依赖于实体。

关于asp.net-mvc - Web Api 和 Controller 矫枉过正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com