Articles of asp.net web api

asp.net mvc api return’此XML文件似乎没有与之关联的任何样式信息。 文档树如下所示。

我使用entity framework制作了一个简单的net mvc web api,当我进行api调用时,我在chrome中遇到这个错误: 此XML文件似乎没有与之关联的任何样式信息。 文档树如下所示。 在IE中没有出现这个错误,而是api的结果导致json文件的下载…我想要设置响应,例如结果将出现在浏览器中,而不是作为下载, 我该怎么做呢?

SignalR Context.User.Name返回空

每当我尝试从Hub访问Context.User.Identity ,用户详细信息始终为空。 注意: Context.User不返回null,属性只是空的: 我已经看了很多关于SO的问题,但是所有这些问题似乎都在问为什么Context.User为null ,答案是移动app.MapSignalR(); 在ConfigureAuth();下面ConfigureAuth(); ,正如我所做的那样: public void Configuration(IAppBuilder app) { ConfigureAuth(app); app.MapSignalR(); } HttpContext.Current.User也返回空,但同样只返回一个Hub 。 如果我从任何其他Controller调用它,我会获得当前登录的用户详细信息。 最后,我还发现HttpContext.Current.User.IsAuthenticated是false令人不安,但用户仍然可以访问该函数。 (请参阅上面屏幕截图中的Authorize属性。) 是否有人能够解释为什么我的用户是空的? 非常感谢所有帮助。

MVC忽略并处理Web API路由

我无法弄清楚为什么MVC而不是Web API正在处理路由。 整个路由配置如下: configuration.Routes.MapHttpRoute ( name: “AdminControllers.TicketingController”, routeTemplate: “api/company/tickets”, defaults: new { controller = “Ticketing”, id = RouteParameter.Optional, action = “GetTickets” } ); API控制器看起来像这样: public sealed class TicketingController : ApiController { [HttpGet] public HttpResponseMessage GetTickets() { return ControllerContext.Request.CreateResponse(HttpStatusCode.OK); } } 我对/api/company/tickets执行HTTP / GET请求,我收到以下错误: 未找到路径“/ api / company / tickets”的控制器或未实现IController。 exception的堆栈跟踪指向ASP.NET MVC(不是Web API): System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type […]

.NET WebApi如何防止“$ ref”:JSON的“x”输出

我正在使用Web Api和Entity Framework,我有一个名为Gift的控制器,当客户端GET是API我通过使用entity framework从DB获取所有礼物并将其作为JSON返回 这是我的控制器function public List Get() { return GiftService.GetIncludeAndActive(); } 这是服务function public List GetIncludeAndActive() { return dbSet.Include(“GiftCategory”).Where(x => x.Status == Model.Enums.GiftStatus.Active).OrderByDescending(x => x.Featured).ThenBy(x => x.Price).ToList(); } 这是礼品模特 public class Gift { public Gift() { this.CartItems = new List(); } public int ID { get; set; } public string GiftName { get; set; } […]

ASP.NET Core中的路由消歧(MVC 6)

当ASP.NET Core遇到含糊不清的命名路由时,它变得惰性。 也就是说,应用程序将在没有抛出exception的情况下运行,但是,它将无法在任何控制器上处理任何请求。 主叫客户端收到500个响应。 我将展示我是如何陷入这个烂摊子的,我想知道如何修复它。 我有一个看起来像这样的控制器: [Route(“api/Subscribers/{id}/[controller]”)] [Route(“api/Organizations/{id}/[controller]”)] public class AddressesController : Controller { [HttpGet(“{aid}”, Name = “PostalLink”)] public async Task GetAddress(Guid id, Guid aid) { //…implementation is irrelevant for this question. } [HttpPost] [SwaggerResponseRemoveDefaults] [SwaggerResponse(HttpStatusCode.Created, Type = typeof(PostalRecord))] public async Task CreateAddress(Guid id, [FromBody] PostalAddress address) { address.ID = Guid.NewGuid(); await createAddress.Handle(address); return CreatedAtRoute(“PostalLink”, […]

如何向webapi询问特定的内容类型

正如我从ASP.net MVC 4发行说明中所理解的那样,它具有内容协商 ,并且它将返回客户端请求的内容类型 客户如何要求特定内容? (在我看来是闪存要求使用AMF的XML)

如何替换Web API模型绑定的行为,以便在没有传入参数时,我将收到一个新实例,而不是Null

我们有一个API,其中包含许多采用Filter对象的操作。 但是,当有人调用API方法并且没有传递任何参数时,我们最终会得到一个空引用。 为了避免在任何地方检查这个问题,我们希望改变模型绑定的行为,以便对于该类型,它返回一个新实例而不是null。 另外,我们真的不想为filter类型编写自己的绑定器,因为它可能经常更改。 我们找到了一种机制,我们可以编写一个ModelBinderParameterBinding,但后来我无法弄清楚如何将该项添加到WebAPI配置中。 那么,我们是否尝试过正确的方法,如果是这样,我们如何告诉WebAPI使用我们的新参数绑定? 这里是ModelParameterBindingModel的参考……我绝对不确定这是生产代码! 因为我无法运行或测试它:) public class QueryFilterModelBinderParameterBinding : ModelBinderParameterBinding { private readonly ValueProviderFactory[] _valueProviderFactories; private readonly IModelBinder _binder; public QueryFilterModelBinderParameterBinding(HttpParameterDescriptor descriptor, IModelBinder modelBinder, IEnumerable valueProviderFactories) : base(descriptor, modelBinder, valueProviderFactories) { if (modelBinder == null) { throw new ArgumentNullException(“modelBinder”); } if (valueProviderFactories == null) { throw new ArgumentNullException(“valueProviderFactories”); } _binder = modelBinder; […]

除非Fiddler正在运行,为什么IE11会创建空白的post请求?

我的AngularJS $ http发布对我的C#WebAPI restful服务的请求在Internet Explorer 11的Windows 8.1上失败。Firefox和Chrome都可以正常工作。 更多细节: IT部门说我们的网络没有代理 所有浏览器都不会选中所有“自动检测”和“使用代理”设置 请求在我的localhost上无法访问IIS,并在本地服务器上运行站点和服务 IE11的增强保护模式已关闭 请求的连接头是’keep-alive’(我也尝试’关闭’,它仍然失败) 有时一个请求会成功,只有第二个请求才会失败 没有显示错误 – IE的网络选项卡中的请求只显示’待定’,所有标题和正文都是空白的 我使用的是HTTP,而不是HTTPS 我已经尝试了元标记’X-UA-Compatible’IE9和Edge 在他们的机器上使用IE11的同事的请求也失败了 当Fiddler运行时,所有浏览器中的所有调用都能正常工作 Visual Studio 2013浏览器链接已关闭(因此SignalRArtery JS文件不会不断调用服务器并干扰测试) 我的AngularJS请求调用如下所示: var url = UrlService.GetUrlOfApi() + ‘Account/SignIn’; var postData = { ‘username’ : username, ‘password’ : password }; $http( { ‘url’: url, ‘data’: postData, ‘method’: ‘POST’ }) .success(function (data) { […]

OData中实体的别名/重命名属性

使用ODataConventionModelBuilder及其EntitySetfunction,是否可以重命名实体集上的属性名称? 假设我有一个实体集类型, Foo 。 它有两个属性, Bar和Baz 。 但是,在我的OData模型中,我希望这些属性分别命名为Jack和Jane 。 我可以这样做吗? 我希望这样的事情: var builder = new ODataConventionModelBuilder { Namespace = “Blah” }; var foo = builder.EntitySet(“Foo”); foo.AliasProperty(f => f.Bar, “Jack”); foo.AliasProperty(f => f.Baz, “Jane”); 到目前为止,我一直无法找到这样做的东西。

从自托管的WEB API控制台应用程序返回jsonp

我使用了这篇博客文章中描述的jsonp格式化程序: http : //www.west-wind.com/weblog/posts/2012/Apr/02/Creating-a-JSONP-Formatter-for-ASPNET-Web-API 有没有人尝试将格式化程序与自托管控制台应用程序一起使用? 我在常规的MVC 4项目中尝试过格式化程序,它立即起作用。 但是,我想在自托管控制台应用程序中使用它,我在使用它时遇到了很多麻烦。 我已注册格式化程序,并validation它已添加: var config = new HttpSelfHostConfiguration(serviceUrl); config.Formatters.Insert(0, new JsonpMediaTypeFormatter()); 我已经validation在使用以下代码发出请求时正在调用格式化程序: $(“#TestButton”).click(function () { $.ajax({ url: ‘http://localhost:8082/Api/Test’, type: ‘GET’, dataType: ‘jsonp’, success: function(data) { alert(data.TestProperty); } }); }) 我已经检查了Fiddler,我得到的回答是: HTTP/1.1 504 Fiddler – Receive Failure Content-Type: text/html; charset=UTF-8 Connection: close Timestamp: 09:30:51.813 [Fiddler] ReadResponse() failed: The server did […]