问题标签 [asp.net-web-api]
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.
autofac - Autofac 和 ASP.NET Web API ApiController
我已经将 autofac 与 MVC 3 一起使用了一段时间并且喜欢它。我最近将一个项目升级到 MVC 4,除了 Web Api ApiControllers 之外,一切似乎都在工作。我收到以下异常。
在我看来,这似乎是通过 autofac 进行 DI 的问题。我是否遗漏了某些东西,或者有什么东西在进行中。我知道,MVC4 刚刚问世并且是一个测试版,所以我不期待太多,但我想我可能会遗漏一些东西。
c# - WCF Web API 和 ASP.NET Web API 有什么区别
我过去使用 WCF WebAPI 做过一些工作,并且非常喜欢它的很多功能,我现在只是在玩 ASP.NET Web API,它看起来完全不同(IE 完全从 WCF 中删除)。
有谁知道 ASP.NET 4 Web API 中包含 WCF WebAPI 的哪些功能?
c# - 如何在 ASP.NET Web API 中配置缓冲区大小和最大消息大小
我们曾经在 WCF Web API 配置中拥有这些属性。
wcf - Asp.Net Web API 和 WCF 服务有什么区别?
自从过去几个月以来,这个 Asp.Net Web API 似乎是微软的一个突出产品。它是 WS* 服务的替代品吗?它与 WCF 服务有何不同?我们在哪里可以看到它最适合 Web 应用程序开发?
datetime - MVC 4 单页应用程序和日期时间
在使用 MVC 4 的新单页应用程序工具时,我注意到我发现的所有示例都没有包含通过 WebApi 更新回 DateTime 的示例。我很快就发现了原因。
我首先从提供的模板生成标准 SPA。然后我打开 TodoItem.cs 并添加了一个 DateTime 字段。然后我按照评论的指示生成了控制器。(没有 datetime 字段,一切正常)。
生成所有内容后,我启动了应用程序并导航到控制器索引(我将控制器称为“任务”)。我按预期得到了包含 0 条记录的网格页面,然后单击了添加按钮。我按预期被带到编辑页面,并在我闪亮的新日期时间字段中输入了一些数据,包括日期。然后点击保存。
产生了一个错误,说:
服务器错误:HTTP 状态代码:500,消息:反序列化 System.Web.Http.Data.ChangeSetEntry[] 类型的对象时出错。DateTime 内容 '01/01/2012' 不是 JSON 所要求的以 '/Date(' 开头并以 ')/' 结尾。
该工具似乎还不支持 DateTime。我确信我可以通过并花一些时间来解决它并让它工作,但我想我可能会在这里找到一些已经解决这个问题并且可以提供见解的人的运气。
有人已经为此战斗了吗?
更新:我正在添加更多信息,因为我提出了这个问题。我尝试使用 JSON.Net 作为我的格式化程序,如下所示。我认为这将是最终的解决方案,但是,仅仅按照下面推荐的海报做是不够的。
使用 JSON.Net 序列化程序时,出现以下错误:
此 DataController 不支持实体“JObject”的“更新”操作。
原因是 JSON.Net 没有完全填充格式化程序试图将其脱轨的对象 (System.Web.Http.Data.ChangeSet)。
传入的json是:
内置的 Json Formatter 能够将此 Json 重构为 ChangeSet 对象,并在 Entity 和 OriginalEntity 字段中嵌入 TodoItem 对象。
有没有人让 JSON.Net 正确反序列化这个?
asp.net-mvc-4 - ASP.NET Web API 的自定义 MVC AuthorizeAttribute
我正在尝试在我的 Web API 控制器上实现自定义授权属性,但遇到了意外行为。
上面的代码工作得很好:它将允许“myUser”检索项目,机器人没有其他人被允许访问。但是,当我使用自定义授权尝试相同的方法时,会跳过整个检查,并且任何用户都可以访问该资源。我的派生类中的 theAuthorizeCore
和覆盖的方法都没有被调用。OnAuthorization
派生类继承自System.Web.Mvc.AuthorizeAttribute
,项目部署在 IIS 上,启用Windows 身份验证和模拟,禁用匿名身份验证。
如果我将相同的自定义授权添加到 MVC 控制器,那么它可以工作。但是在 API 控制器上,什么都没有。如果该Authorize
属性也不起作用,那将更有意义。我错过了什么吗?这是预期的行为,还是 Beta 版中的错误?
c# - 单元测试 ASP.NET Web API
我正在对一个简单的帖子进行单元测试:
但是,“URL”和“请求”显然会为空。
是否有模拟 ControllerContext 和 HttpContext 的替代方法?
更新:
将其更改为:
更新 2:
这个更好:
asp.net - Web API 可以将 XML 转换为 Json 吗?
我有一个旧的 Web 服务,我想用新的 MVC Web API 包装它,问题是我可以让 ASP.NET Web API 将我的 xml 转换为 json 吗?
我的一个想法是使用 XDocument 创建一个动态对象并返回它,但是当我使用 ExpandoObject 尝试它时,不幸的是它返回了一个带有键/值对的 json 对象。
asp.net-mvc-4 - 如何注册已在 AREA 中创建的控制器
我正在使用 MVC4 的 WEB API 来公开控制器。
最初我创建了一个MVC4 WEBAPI项目,设置项目不打开任何网页,等待外部应用程序调用URL(WEB API)。VS2010 中的项目设置为从 IIS7 Express 运行,而不是 VS2010 的 Dev Server。这工作正常,浏览器提示我下载文件。这对我来说没问题,因为浏览器不知道如何处理返回的数据(RAW TEXT)。
接下来,我在MVC4项目区创建了一个AREA,然后添加了一个控制器(WEB API类型)。
然后我再次运行该项目并在浏览器中输入 URL(WEB API)。它失败了。
埃德。
asp.net-mvc-4 - Web API、API Controller 以及如何更新模型?
我正在尝试 MVC 4 中的 API 控制器,并且对使用 put、更新对象时的最佳实践有疑问。
我使用 RavenDB 作为数据存储,我创建了一个自定义 MediaTypeFormatter,它有一个 JsonDynamicConverter 类型的转换器,可以将 json 序列化和反序列化为动态对象。话虽如此,我的 API 控制器 Put 方法看起来像这样
这个动态对象看起来有点像这样:
所以,到目前为止一切顺利,但现在我需要用 id pages-2 更新我的实体。UpdateModel 在 ApiController 中不存在,所以我的问题是最好/首选的方法是什么?