问题标签 [webapi2]
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.
c# - asp.net web api2 多个项目
我想在一个解决方案下创建 4 个 asp.net web api2 项目,假设项目名为 P1(UI) P2(UI) P3(UI) P4(Service)
这些项目将部署到不同的活动目录,我希望所有 UI 项目都应该使用 P4 的服务,而 P1-P3 的项目将只有 cshtml 文件。
请建议如何做到这一点我正在使用 VS2015 社区版更新 3
angularjs - 如何使用angularjs在http POST方法中将两种不同类型的参数传递给Web API?
第一个参数是复杂类型对象(JSON),第二个参数是简单类型(字符串)。这里我使用的是 Web API 2。
我把我的代码放在下面。
网络 API
angularjs
在上面的代码中,我在 UserDetails 中得到 NULL,在 Web API 的 LoginIP 中得到 192.152.101.102。
在上面的代码中,我在 Web API 的参数 UserDetails 和 LoginIP 中都得到了 NULL。
那么如何使用angularjs在http POST方法中传递两种或多种不同的参数类型。
c# - 如何使用 MultipartMemoryStreamProvider 将文件从 Web Api 2 上传到 Azure Blob 存储
我正在尝试将数据 [用户 ID,文件] 从 UWP 发送到 WebAPI2。从 WebApi2,我想在 Azure 存储中创建一个容器 [容器名称 = 用户 ID]。代码如下。第一部分是客户端 [UWP]。
下面的代码表示在 Azure Blob 中上传文件的 WebAPI2 代码:
{ [RoutePrefix("api/upload")] 公共类 UploadController : ApiController {
}
在上面的 WebApi2 代码中,正在创建 Azure 存储容器,但是当我调用以下方法时,会创建 Blob,但具有“0 字节大小”,即没有数据/内容被传递给 Blob,而只创建了一个 Blob相应的文件名:
需要帮助将文本文件的数据按原样传递给 blob。任何帮助/建议将不胜感激。谢谢 :)
注意:我是新手 :)
azure - 将容器名称从 webapi2 发送到工作角色 - azure
我正在尝试根据用户 ID 创建容器,并且在一个容器中我想将 5 个 blob 作为文本文件上传。客户端是 Windows 应用程序 (UWP)。
用户 ID 和文本文件被发送到发布请求 (webapi2) 并从这里创建容器并在其中上传文件。同时,容器名称被赋予服务总线队列,该队列应由工作角色读取。
下面是客户端代码:
post 方法如下,其中还包括将容器名称发送到服务总线队列的功能。
我成功地创建了容器、上传文本文件并将容器名称传递给服务总线队列。
问题如下;
- 从客户端,由于传递了两个数据(容器,即user-id及其对应的5个文本文件),else部分被执行了5次。
- 因为有 5 条消息(同一个容器)被发送到服务总线队列。
- 我只需要向队列发送一条消息,即容器名称。
任何帮助将不胜感激。我是 Azure 的新手。
jquery - 为什么 JQuery AJAX 间歇性地返回错误 0?
我开发了一个页面,通过 AJAX 将带有图像的表单发布到 WebAPI2 控制器。
我反复这样做;我让用户选择一堆图像,他们添加到选择框中,然后用户可以从另一个位置添加更多图像,或者他们可以从列表中删除项目。因此,我将他们填写的带有图像的表格提交给服务器。我每张图片专门做一次,这样我就可以显示每张图片上传的进度。一旦图像在服务器上,它就会由我的服务器端代码移动到一个安全的存储库。应用程序池正在使用特定的 AD 帐户来完成它的工作。
这对我很有效,对其他测试过它的人也很有效,但是我有一个测试员——8 人中的一个——在 IE 中遇到间歇性错误。他不会在另一个浏览器中尝试(我们没有实际的测试人员,只有我们的用户,而且这个很固执)
我的服务器端 web api 代码,它是同一个项目的一部分,甚至没有被击中。我记录下我们立即输入了该方法。此外,服务器端的应用程序日志中没有记录错误。AJAX 正在返回“错误”和“0”。没有响应文本。我将所有 AJAX 错误记录到服务器地址(提交就好了,顺便说一句)
我最初是用 MVC 控制器而不是 Web API 编写的,但我希望它能够解决问题。它没。
“提交”表单的按钮不是提交按钮。它是输入=“按钮”。我的表单上没有提交按钮。该表格没有可邮寄的地址。我锁定了整个表单,因此在上传项目时无法单击任何按钮,无法编辑任何元素。总之,我看不到 e.preventDefault(); 会有帮助的。
这实际上不可能是跨站点脚本,而且我在网上找不到任何表明可以随机触发跨站点脚本策略的内容,但似乎确实如此。
有时,他提交表单和 1/3 的图像上传,其余的错误。这不是图像类型、大小或其他任何东西——我复制了他上传的图像并用它们来验证。
我们在服务器端禁用了跨站点脚本,我在我这边添加了一个 JSONP 格式化程序,他测试它没有错误。我们将继续测试它是否真的解决了问题,因为他之前已经解决了问题,然后问题又出现了。
如果确实是跨站点脚本导致它,为什么?由于我没有在我的 ajax 请求中指定一个域,因此 IIS 服务器上是否有某些东西使它选择了不同的顶级域?
getBaseURL() 说:
随着 HiddenCurrentURL 在我的 _layout 中:
任何帮助,将不胜感激。我不确定现在该怎么做。浏览器设置可以做到这一点吗?
编辑:他正在使用 IE 11 - 我和我的其他测试人员也是如此。我和其他一些人也在 Chrome 和 Firefox 中进行了测试。
Edit2:我们禁用了跨站点脚本,问题仍然存在。我认为有趣的是,这个问题似乎只发生在深夜或清晨,在下班时间。我检查了 IIS 组,他们说它运行为“始终在线”...
jquery - 为 Web Api put request MVC 5 序列化表单数据
我有一个显示类记录的强类型 Razor 视图。这个视图显示了一个用户可以用来更新记录的表单(一个下拉菜单、几个复选框和几个文本框)。当用户通过更改控件的值来修改字段时,会立即向 Web API 发送 ajax 调用以更新该字段。以下 Ajax 调用工作正常:
但是,我想让这个函数更通用,这样它就可以用于其他表单(尤其是那些需要更新更多数据的表单)。理想情况下,rec 对象将像这样填充:
不幸的是,这不起作用,因为在应用后JSON.stringify()
它rec
不会返回预期的 JSON 字符串。相反,它会发送一系列名称/值对,如下所示:
那么我该如何解决这个问题,使字符串看起来像:
Web API 控制器:
查看模型
剃刀视图:
c# - 更改或覆盖响应 badrequest 消息 web api c#
你们好吗,我需要更改 BadRequest() 返回的响应消息。
当我使用这样的请求时, BadResquest("error: you can not pass these values")
我想让我的 api 返回如下内容:
但端点重新调整了这个:
我不想在回复中出现“消息”一词,是否有任何形式可以覆盖或更改回复?
c# - Web Api 中的异步 HTTP 请求
我对此进行了谷歌搜索,并设法找到了几个链接来解释 C# 和 Web Api 2 中的异步 HTTP 请求的概念。但是我没有得到任何相同的工作示例。
只是为了清除空气,我的要求如下。当客户端调用 API(执行长时间运行的处理)时,它必须几乎立即返回 HTTP 202(已接受)作为响应,并在后台继续处理。到目前为止我很清楚。下面是我如何实现相同的示例代码。我卡住的地方是当这个长时间的处理任务在后台完成时,它必须向同一个客户端触发回调并返回 HTTP 200 响应。可能在后台执行长处理任务时,客户端发出了另一个具有不同值的并发请求。
谁能指出我正确的方向。这是否只能通过代码实现,或者是否有任何设置要在 IIS 级别实现。感谢您在这方面的时间和帮助。
提前感谢大家。
到目前为止我的代码。
visual-studio-2013 - 无法在 Web API、ASP.Net 4.5 中安装 Nuget 包“Microsoft.AspNet.Odata”
我是 Web API 2 的新手。我正在尝试使用 VS 2013 Update 4、ASP.Net 4.5 创建一个应用程序,同时尝试安装“Microsoft.AspNet.Odata”Nuget 包,我收到以下错误:
任何帮助继续进行表示赞赏。
谢谢!!
c# - Web API 2 - 流式读取文件
您如何在 web api 中将文件的一部分作为流读取并对该流执行操作而不将整个文件放入内存中?注意:我不想在阅读之前将文件保存在任何地方 - 它已上传到 Web api 控制器。
但我真正想要的是实现以下伪代码: