Tag: asp.net web api

MVC中的属性和filter有什么区别

现在,我可以请一个比较,而不仅仅是一个定义。 例: SomeClassAttribute (or ISomeClassAttribute) VS SomeClassFilter (or ISomeClassFilter) 我觉得它们可以以相同的方式使用,但一般来说“应用属性”和“filter是它们产生的function”。 所以我可以“为方法(或类或其他)添加属性以应用filter。

元数据与WebAPi OData属性路由不起作用

我正在为OData端点使用OData属性路由。 这是我的一个例子: [ODataRoutePrefix(“Profile”)] public class ProfileODataController : ODataController { [ODataRoute] [EnableQuery] public IHttpActionResult Get() { var repo = new Repositories.ProfileRepository(); return Ok(repo.GetProfiles()); } [ODataRoute(“({key})”)] [EnableQuery] public IHttpActionResult Get([FromODataUri] string key) { var repo = new Repositories.ProfileRepository(); var result = repo.GetProfiles().SingleOrDefault(x => x.Id== key); if (result == null) return NotFound(); return Ok(result); } } 这是我的设置: config.MapODataServiceRoute(“odata”, […]

为Web Api版本控制自定义MapHttpAttributeRoutes

我正在实现Web API版本控制中的Web API版本控制 。 我的控制器位于2个独立的命名空间中,我使用自定义的SelectController方法根据查询参数选择要使用的版本。 例如 http://myapi/api/values?version=1.0 这一切都很好,但控制器中的某些操作使用Route属性 [Route(“api/values/getNames”)] public HttpResponseMessage Get() { … } 默认使用哪些映射到正确的控制器 config.MapHttpAttributeRoutes(); 在WebApiConfig.cs中 如果我有多个版本的API具有相同的路由,这将不起作用。 我是否能够为config.MapHttpAttributeRoutes()提供自定义实现,以便我可以选择要使用的API的正确版本,或者有更好的方法吗?

ASP.net Web API中MVC的DefaultModelBinder的等价物是什么?

我想在ASP.Net Web API中创建一个自定义模型绑定器。 有关如何从头开始执行此操作的大量资源,但我想利用现有function。 我在codeplex中查看了源代码,并且可以在那里看到大量的模型绑定器,但大多数是密封的……即使这样,我也无法确定在哪种情况下使用哪一个。 这是我的api方法标题: public async Task Post(long appId, [FromBody]Field field) 我想要做的是基本上在填充所有基本属性后拦截模型绑定器,然后根据我将在客户端设置的http请求标头设置一些额外的值。 正如我所说,我很乐意创建自定义模型绑定器和模型绑定器并将它们连接起来,我遇到问题的是试图重新使用现有的function。 谢谢,皮特

客户端 – 客户端通过Microsoft Bot框架聊天

我是微软Bot框架的新手,我将建立一个项目,我的客户可以与机器人聊天以获取信息,此外,我希望我的Bot建议我的用户是否想要与Bot聊天或与我的秘密人员使用我的管理网站接收Bot转发的客户留言。 所以我的问题是,我的秘书怎么可以加入与客户的聊天,而博特将保持沉默。 无论如何不使用Conversation Chat组,因为我的秘书可能不会使用Bot Framework聊天控件来连接。 我正在考虑使用SignalR来帮助我的秘书与客户聊天 这是我的计划:

WebAPI POST 没有绑定

我将JSON发布到WebAPI控制器,但模型上的属性未受约束。 public void Post([FromBody] Models.Users.User model) { throw new Exception(model.Id.ToString()); } 原始请求如下: POST http://diva2.local/siteapi/User HTTP/: diva2.local Connection: keep-alive Content-Length:: application/json, text/plain, */* Origin: http://diva2.local X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.: application/json;charset=UTF: http://diva2.local/Users Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=: ISO-8859-1,utf-8;q=0.7,*;q=: .ASPXAUTH=4; __RequestVerificationToken=Rp_hUysjwCjmsxw2 {“Id”:3,”FirstName”:”DIVA2″,”LastName”:”User1″,”Username”:”diva1″,”IsApproved”:true,”IsOnlineNow”:true,”IsChecked”:true} 我能找到的每个例子都告诉我这应该有效,但是model.Id == null 。 但是,如果我将JSON更改为: {User: {“Id”:3,”FirstName”:”DIVA2″,”LastName”:”User1″,”Username”:”diva1″,”IsApproved”:true,”IsOnlineNow”:true,”IsChecked”:true}} 一切都正确绑定。 […]

无法解析从外部DLL加载的控制器

我正在使用MVC4 Web API构建一个Web API,其中包含一个IoC容器(在这种情况下是简单注入器,但我不认为这个问题与该容器有关),它应该公开各种CRUD和查询操作。 在我的案例中使用IOC的原因是我们是一个开发商店,我需要能够让客户构建自己的Web API控制器,以暴露他们需要从我们的系统公开需要的数据。 因此,我希望设计我的解决方案的方式允许我通过IOC制作所有控制器,包括我们和我们的客户,外部和可加载的产品。 该网站没有任何对该库的引用,但该库包含我想在网站中使用的控制器。 类型在容器中注册,DependencyResolver设置为自定义依赖项解析程序。 我有代码找到dll插件并加载控制器类型,但当我尝试导航到它将代表它的路线时说它无法找到它。 即如果我尝试导航到/ api / Test1Api我应该看到文本“hello world” 我的问题是虽然我已经加载了我的控制器类型,但我无法将其转换为网站所说的路线。 我收到了错误 未找到与请求URI匹配的HTTP资源 未找到与名为“Test1Api”的控制器匹配的类型。 这是我如何注册容器 public static class SimpleInjectorInitializer { /// Initialize the container and register it as MVC3 Dependency Resolver. public static void Initialize() { //// Did you know the container can diagnose your configuration? Go to: http://bit.ly/YE8OJj. // […]

FromBody值为null

这是Asp.Net Webform应用程序 这是我的Apicontroller中的POST方法 public void Post([FromBody]string value) { } 我是小提琴后期流程。 我做了这样的实验。 但事实并非如此。 问题是什么。 你能帮我吗? 我试过了,我失败了。 public void Post(MyViewModel model) { string aa = model.Value; } public class MyViewModel { public string Value { get; set; } } 在提琴手: Request Body: Value=hakan

使用全局Web APIfilter属性的Unitydependency injection

参考此CodePlex统一文章,我能够使用WebAPI控制器获取filter属性,如下所示: [MyFilterAttribute] public class TestController : ApiController {} 但是,如果我想在使用GlobalConfiguration的所有操作中应用我的filter属性,它将被剥离注入的依赖项: public class MyFilterAttribute : ActionFilterAttribute { [Dependency] public MyDependency { get; set; } public override void OnActionExecuting(HttpActionContext actionContext) { if (this.MyDependency == null) //ALWAYS NULL ON GLOBAL CONFIGURATIONS throw new Exception(); } } public static class UnityWebApiActivator { public static void Start() { var resolver = […]

.Net WebApi OData返回Queryable的操作

我希望实现接近RateProduct操作的内容: http : //www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-actions 在该教程中,它被定义为: [HttpPost] public int RateProduct([FromODataUri] int key, ODataActionParameters parameters) { // … } ODataModelBuilder modelBuilder = new ODataConventionModelBuilder(); modelBuilder.EntitySet(“Products”); // New Code ActionConfiguration rateProduct = modelBuilder.Entity().Action(“RateProduct”); rateProduct.Parameter(“Rating”); rateProduct.Returns(); 但是,我有一个Location实体的用例,它足够聪明,可以返回其周围某个半径范围内的其他位置。 它大致应该是这样的: [HttpPost] public IQueryable GetLocationsWithinRadius([FromODataUri] int key, ODataActionParameters parameters) { // Get the Location instance intended to be the center of the […]