问题标签 [asp.net-apicontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
806 浏览

asp.net-mvc - 与实用方法相关的 ApiController 与 Controller

据我了解,ApiController 用于对资源执行 CRUD。但我有一个案例,我只是调用一些 Helper 方法(在 SQL 服务器上恢复数据库),所以我不确定 ApiController 是否有意义?

我应该只在对某事执行 CRUD 时使用 ApiController 吗?还是应该将 ApiController 用于不返回视图的任何内容?'post' 是正确的 HTTP 动词吗?我对这一切都错了吗?

我想清楚地知道何时使用一个而不是另一个。

0 投票
2 回答
2411 浏览

asp.net-mvc - 如何使用 .NET MVC4 仅从 REST APIController 中的模型返回特定字段的子集

我正在编写一个 Web API,客户端可以请求以 XML 格式返回数据。我正在使用 Enterprise Foundation 和 MVC4 在 .NET 中实现这一点。

我正在努力解决如何从我的控制器中的模型中只返回某些字段的子集。

为了论证,假设我有一个 Product 模型,其中包含属性“Id”、“Name”、“Price”和“Actual Cost”(我使用的示例来自http://www.asp.net/web-api /overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-framework,-part-6 )

我需要为客户公开一个 Web API 以查询特定产品以获取其名称和价格,但在此响应中我不想返回“实际成本”属性(因为这是我们的秘密)。

现在在我提供的链接中,这正是他们试图通过使用 DTO 来解决的问题(他们定义了一个名为 ProductDTO 的 DTO,它只包含我想要返回的子集)。我已经实现了这个解决方案,我现在确实能够只返回我在 DTO 中指定的字段。

问题是用于在 XML 中返回的实体的命名现在是 ProductDTO 而不是 Product,即返回的 XML 是

而不是

这意味着我们所有当前使用我们的 API 并期望返回“产品”的客户现在将返回“产品 DTO”,这意味着他们将不得不更改他们的代码,这是不可接受的。我需要为他们提供一个“产品”,其中只有他们目前获得的相关子字段集。我如何实现这一目标?我不能像阻止属性在 web api 中序列化中所建议的那样简单地“忽略”数据成员,因为我也有一些 API 案例,我确实需要返回所有属性而不仅仅是一个子集。

只是一些背景知识:我们有一个现有的 API 服务器接口,它是用 Ruby on Rails 编写的,我们现在正在将它转移到 C# 和 .NET MVC4。我们还有一堆客户端应用程序已经连接到我们现有的、较旧的 Ruby on Rails API 服务器,我们不希望客户端对其代码进行任何更改。我们只是将 API 服务器代码从 Ruby on Rails 转移到 C#。在 Ruby on Rails 中,当我只需要在某些调用上返回属性的子集时,我可以简单地将过滤器应用于 XML 序列化器。

0 投票
1 回答
197 浏览

c# - Asp.net 单页应用程序:如何检查帖子数据?Request 对象的哪个属性?

如何检查通过 Ajax 请求提交的 post 数据?它在请求对象中吗?如果是,哪个属性?谢谢!

0 投票
1 回答
2531 浏览

c# - 将 JSON 中的 POST 发送到 ApiController

编辑:找到答案(在评论中)。

目前,我正在使用System.Web.Http.ApiController访问服务器内存中的某些对象。这些对象可以有任何类型。

我使用以下 api 控制器来接收它们:(示例代码。不是完整的源代码)

这可以很好地通过 web api 以 JSON 格式接收我的所有对象。问题是使用 POST 发送新对象:

Object 将是一个动态对象,而不是真正的反序列化对象。实现一个具体的方法,例如:

工作正常。可悲的是,我不知道运行时所有使用的类型,但我通过分析 dataPath 知道它是哪种类型,并且可以在运行时获取 Type 实例。如何告诉格式化程序或 ApiController(我不知道谁实际创建了实例)使用正确的类型创建正确的实例?

我正在使用System.Net.Http.Formatting.JsonMediaTypeFormatter.

提前致谢。

德卢兹

0 投票
1 回答
1093 浏览

android - HTTPPost 文件上传到 ASP.Net API 时出错

我正在使用 android 尝试将文件上传到我的服务器,该服务器正在运行 asp.net mvc4 web api。我的android类如下:

而我的 asp.net 控制器类是:

这是 global.asax.cs

我非常渴望得到这个工作,有人可以帮助我吗?

更新:我已经设法“找到” post 方法,但我似乎无法让 android 发送文件,有人可以帮我编写服务器端 post 方法吗???

0 投票
1 回答
1181 浏览

ajax - 带有查询字符串的 Ajax 调用到 Asp.net Web Api

我称 api 为

和我的 ApiController

和我的路线

我没有查询字符串

少了什么东西 ?

0 投票
1 回答
5278 浏览

api - Web API 控制器方法——请求为空

调用如下所示的方法时,Request 始终为 null。我有一些简单的方法从 MVC4 应用程序中的控制器返回 JSON 数据,其中控制器使用 ApiController 作为基类。我的目录函数的代码如下:

调用此方法时,会从 r.GetDirectory() 正确加载“dir”。但请求为空。所以自然 Request.CreateResponse() 失败,依此类推。我正在寻找 Request 为 null 的原因,或者寻找允许返回保持 HttpResponseMessage 的重写。

这被称为(在我的单元测试项目中):

谢谢你的帮助。

0 投票
1 回答
521 浏览

ajax - 如何获取从 ajax 到控制器的模型列表?

我有一个 apicontroller 将 List 返回到 ajax 函数的成功部分:

当在ajax成功部分调用“ReturnMYPartial”并发送“result”(从apicontroller返回列表到ajax)给它时,“ReturnMyPartial”的参数为null!

我该如何解决它并获取列表?

“ReturnMyPartial”控制器:

0 投票
1 回答
1385 浏览

c# - API 控制器传递无效 JSON 接收 null

我正在使用 ASP.NET 的ApiController类来创建 Web API。我发现如果我传递无效的 JSON,而不是调用者得到 500,输入参数为空。就像,如果我通过

对于这种方法,这显然是无效的:

我明白了p_inputnull我宁愿发回一些东西告诉用户他们没有发布有效的 JSON。

在我的WebApiConfig.cs,我有:

有任何想法吗?我确实看到了这个例子,但我相信那是 ASP.NET MVC,而不是 ApiController。

0 投票
1 回答
2640 浏览

c# - 从 API 控制器中的 Castle Windsor 容器解析

我有一个 API 控制器可以触发使用构造函数依赖注入的服务。我想使用 Windsor 容器来注入这些依赖项,但我不确定最佳实践。

这是 API 控制器工厂的一部分:

这是服务工厂的一部分:

这是 API 控制器的一部分:

服务工厂包含一个 Windsor 容器的实例,那么将它暴露给 API 控制器是不是一个坏主意?如果是这样,最好的选择是什么?谢谢。