问题标签 [asp.net-web-api2]

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 投票
1 回答
444 浏览

c# - 即使使用自定义验证属性,Asp.net Web.APi 也会返回内置错误响应

您好我正在尝试为我的注册页面创建一致的验证。这是我遇到问题的属性:

在测试时,我意识到即使我为 DateTime 添加了自己的验证属性:

如果用户发布 null DateTime 我仍然会收到此响应文本:

“无法将空值转换为 System.DateTime。路径 'birthDate',第 1 行,位置 17。”

如何使 asp.net web.api 停止返回内置的错误响应文本?

0 投票
1 回答
2174 浏览

asp.net-mvc-5 - 同一域中的 Web API 2 项目和 MVC 5 网站项目

使用的技术:

  • 微风JS
  • 数据
  • 网络 API 2
  • MVC 5
  • IDE:Visual Studio 2013

我一直在为在一个解决方案中拥有一个 Web API 项目和一个单独的网站项目而苦苦挣扎。

  • 我的 Web API 2 项目打开为:localhost:2020/ExampleProject.API
  • 我的 MVC 5 网站项目打开为:localhost:5050/ExampleProject.WebSite

现在默认情况下 web api 不允许跨源策略。所以我尝试在我的 Web API 2 中启用 CORS,虽然我能够让它工作,但它只适用于最新的浏览器;我需要 IE7 到 IE9 的向后兼容性。

所以我玩了JSONP。我不喜欢对此缺乏支持。我能够让它在我的 Web API 2 项目中工作,但如果我想使用 BreezeController (如果使用微风js web api 库),它就不起作用。如果我想创建一个 ODataController,它也不起作用。

所以我正在远离跨源共享的想法;虽然希望将来无论我使用 BreezeJS WebAPI 帮助程序还是 ODataControllers 都会对 jsonp 有足够的支持。

目前,我不知道如何将我的 WebAPI 项目和我的 MVC 5 网站放在我可以拥有的同一个域下:

  • 本地主机/ExampleProject.API
  • 本地主机/ExampleProject.WebSite

我必须在我的主机文件中进行一些配置吗?如果我想从 VS2013 运行我的项目,它是否能够在同一个域下运行两个项目.. 还是我必须继续手动更改浏览器中的 URL?

0 投票
1 回答
49 浏览

asp.net-web-api2 - Web API 5.1 问题

更新到 5.1.0 后将数据发布到 WebApi 失败 嗨!你有关于这个问题的任何更新吗?我遇到了完全相同的问题。我愿意尽我所能提供帮助,因为这对我来说是一个表演障碍。

谢谢,-基里尔。

0 投票
1 回答
865 浏览

c# - 使用 MySQL 而不是 LocalDb

我正在尝试为 Web API 2 使用默认身份验证系统,我注意到它创建了以下数据库:

在此处输入图像描述

但我已经有一个带有 MySQL 的实体数据库。是否可以合并它们?

然后我可以像这样将上下文添加到启动选项中

它会起作用吗?

因为我不知道如何将 2 个数据库与 Entity 一起使用。身份验证不起作用,因为我为此替换了 Web Config 中的 EntityFramework 部分

那么是否可以对 AspNet 表使用数据库优先方法。

谢谢

编辑

使用 SQL Server 会更容易吗,因为它仍然可以用于这个项目?

0 投票
1 回答
2951 浏览

c# - 升级到 Web API 2 会破坏应用程序

我有一个 Umbraco 7 应用程序,它使用 V4.0 程序集来处理诸如 System.Web.WebHost、System.Web.Http 和相关程序集之类的东西。我正在尝试让 Web API2 dll 与 Umbraco 应用程序一起使用,并且遇到了困难。

如果我使用程序集重定向默认为 V5.0 程序集,则应用程序会在 Umbraco 加载并尝试使用控制器时中断。这里的问题是,在 System.Web.Http 的 V5.0 中,ApiController 现在在设置 Request 时有一个检查。此检查总是失败并抛出 InvalidOperationException:

我正在尝试的另一件事是正确加载和使用两个 DLL。在这种情况下,我遇到了一个错误,但不知道我是否做得正确。我所做的只是添加文件夹以保留相同 dll 的不同版本,并使用以下方式将它们连接到 web.config 中:

错误:CS1705:程序集 'WebApi,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null' 使用 'System.Web.Http,Version=5.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35',其版本高于引用程序集“System.Web.Http,版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”

有希望吗?

0 投票
1 回答
4094 浏览

asp.net-web-api - 从 Request 对象中获取当前的 MediaTypeFormatter,可能吗?

我想从请求对象中获取 MediaTypeFormatter,这可能吗?

因此,如果请求作为

然后我想获得 MediaTypeFormatter,在这种情况下,它应该是 JsonMediaTypeFormatter。

我需要这样做的原因是我的 api 方法可以同时支持 MediaTypeFormatters(即 XML 和 JSON)。

我正在返回一个 HttpResponseMessage 并将内容设置为 ObjectContent,并且我需要传入媒体类型格式化程序,如果我将此值硬编码为 json,那么它将不支持 xml。

有人做过这样的事情吗?

提前致谢

0 投票
1 回答
3686 浏览

c# - 使用 RouteAttribute 对 ApiController 进行单元测试

我以为是在网络上进行的简单搜索结果却不止于此。

最接近解决方案的是第一个可以使用属性进行路由的解决方案:AttributeRouting not working with HttpConfiguration object for writing Integration tests

但是 ASP.NET Web Api 2 呢?

我的单元测试

如何注入我的控制器,以便它读取控制器上的属性并设置路由,以便我可以实际进行一些测试?

0 投票
1 回答
604 浏览

asp.net-web-api - WebAPI 2.1 中自定义路由约束的更改

由于我将 WebAPI 2 应用程序更新为 WebAPI 2.1,路由停止工作。我有几个自定义路由约束实现为 GuidConstraint。我收到的异常如下:

System.InvalidOperationException:具有路由模板“{guid}/{language}/{controller}/{id}”的路由上的约束条目“guid”必须具有字符串值或实现“System.Web”的类型。 Http.Routing.IHttpRouteConstraint'。

文档中没有提到这个问题。

以下帖子的目的是知识共享和意见交流。

我之前的实现错了吗?2.1 中的新实现有哪些变化不再支持更通用的接口?

0 投票
1 回答
538 浏览

asp.net-web-api - 修改 ASP.NET 标识的连接字符串名称

我想存储更改连接字符串,使其指向具有所有必要表的现有数据库。当搜索“DefaultConnection”时,我无法在应用程序中的任何位置找到 Models 文件夹中没有任何与类相关的模型。我所看到的只是接口定义是元数据。我可以更改 web.config 中的连接字符串值以使其工作,但现在我很想知道它是如何实现的,这样如果我想自定义逻辑,我在哪里可以找到这些类?

我正在使用最新版本的 WebAPI 并使用 VS 2013。

令我困惑的是如何修改类以实现自定义逻辑,我找不到与身份相关的模型类。

0 投票
1 回答
943 浏览

angularjs - 尝试使用 angularjs 访问 REST 服务时出现 404

我有一个非常简单的 ASP.NET Web API 2 项目设置,只有一个控制器。控制器如下:

使用http://localhost:52491/api/ServiceCodes,我可以在浏览器中看到结果。

但是,在我的 Angular 应用程序中,尝试访问相同的 url 时出现 404 错误。

角度应用程序在节点内运行:8000