ApiController not using default JsonSerializerSettings

I have set serialization settings in HttpConfiguration class like this: public class ApiConfiguration : HttpConfiguration { public ApiConfiguration() { Routes.MapHttpRoute( ...

Id #2083 | Release: None | Updated: Today at 8:19 AM by atuzovic | Created: Today at 8:19 AM by atuzovic

OData: Enum keys not recognized by ODataConventionModelBuilder

Given a class which contains properties: [Key, Range(1, int.MaxValue)] public int? Id { get; set; } /// <summary> /// The type of client /// </summary> [Key] public...

Id #2082 | Release: None | Updated: Today at 1:37 PM by rcollette | Created: Tue at 10:27 PM by rcollette

Unnecessary allocations in OutputCacheAttribute

output cache is hit pretty heavily in read-centric sites, which can lead to parts of OutputCache clogging gen-0 unnecessarily - should be optimized to reduce allocations if possible Pull request:...

Id #2081 | Release: None | Updated: Tue at 1:06 PM by marcgravell | Created: Tue at 1:03 PM by marcgravell

Allow enum properties to be keys

With OData 4 support for enums, composite keys, containing an enum are no longer possible. If the property is explicitly declared as enum before the explicit .HasKey call, an exception is thrown in...

Id #2080 | Release: None | Updated: Today at 1:49 PM by rcollette | Created: Tue at 9:37 AM by nirinchev

Delta<T> should avoid static properties

When initializing the _allProperties field in Delta<T> GetProperties() gets called, which includes static properties. Instead GetProperties(BindingFlags.Instance | BindingFlags.Public) should be ...

Id #2079 | Release: Untriaged | Updated: Tue at 3:29 AM by jacalvar | Created: Tue at 3:29 AM by jacalvar

IApiExplorer does not work with controllers in assembly

Hi, I created controllers in: A - Web project B - Separate dll Rule base routing is working for A and B. I would like to use IApiExplorer to obtain description about controllers. insta...

Id #2078 | Release: None | Updated: Mon at 7:19 PM by mironex | Created: Mon at 12:54 PM by mironex

Add version information in jQuery Unobstrusive js files

Ask from a customer: Current: /* ** Unobtrusive validation support library for jQuery and jQuery Validate ** Copyright (C) Microsoft Corporation. All rights reserved. */ Suggested: /* ** j...

Id #2077 | Release: None | Updated: Mon at 6:54 AM by kamehrot | Created: Mon at 6:54 AM by kamehrot

AttributeRouting does not work for Controller in separate assembly

Hi, I created controllers in: A - Web project B - Separate dll I have extend extension point interface to search assembly in separate dll. Rule base routing is working for A and B. Attribut...

Id #2076 | Release: None | Updated: Tue at 12:31 PM by mironex | Created: Mon at 12:27 AM by mironex

Web Api 2 Attribute Routes not found in MSTest project

I created a controller with attribute routing in a Console application and self hosted it. I then added an MSTest project to the solution and tried to test the route by self hosting in the test pro...

Id #2075 | Release: None | Updated: Mon at 5:53 PM by njsardo | Created: Fri at 5:27 PM by njsardo

Web API Basic Auth sample throws null ref when Invalid Credentials are supplied

Authorization still fails but an exception should not be thrown.

Id #2074 | Release: None | Updated: Fri at 2:42 AM by MrkMnl | Created: Fri at 2:42 AM by MrkMnl

OData V4 service should support DateTime

OData V4 should support DateTime or you should give the developer a way of converting datatime to datetimeoffset when the service is called. I have several serializable objects that are in 3rd par...

Id #2072 | Release: None | Updated: Today at 2:49 AM by schaibaa | Created: Jul 22 at 2:18 PM by goroth

WebApi ModelBinder - call default Binder from within custom Binder

See https://aspnetwebstack.codeplex.com/workitem/2067 for an example of why this is needed. Also see this SO post: http://stackoverflow.com/questions/10125508/.

Id #2068 | Release: None | Updated: Jul 23 at 9:26 PM by yishaigalatzer | Created: Jul 16 at 3:03 PM by acsteitz

WebApi ModelBinder - empty parm setting non-nullable integer to 0

I submit that given the following querystring ?mycoll=&singlevar=1 the following model class MyModel { public ICollection<int> mycoll { get; set; } public int singlevar { get; set; }...

Id #2067 | Release: vNext | Updated: Jul 23 at 9:30 PM by yishaigalatzer | Created: Jul 16 at 2:59 PM by acsteitz

Support PATCH to a complex type.

Now we the Delta class only supports Entity type, but the protocol also supports PATCH to a complex type: 11.4.9.3 Update a Complex Type A successful PATCH request to the edit URL for a complex ty...

Id #2066 | Release: vNext | Updated: Jul 21 at 2:34 AM by azhou | Created: Jul 16 at 3:02 AM by jinfutan

Support deserialize complex type value

Protocol says: The service MAY additionally support clients sending a PUT request to a URL that specifies a complex type. In this case, the service MUST replace the entire complex property with th...

Id #2065 | Release: vNext | Updated: Jul 21 at 2:34 AM by azhou | Created: Jul 16 at 2:59 AM by jinfutan

Support collection of complex type value as function parameter

We need to support this feature so that below request can be fulfilled. PUT ~/Windows(1)/OptionalShapes

Id #2064 | Release: vNext | Updated: Jul 16 at 7:26 AM by Mentoliptus | Created: Jul 16 at 2:56 AM by jinfutan

support extension of ODataConventionModelBuilder to more custimized conventions

att. _convents member today is a private static list looks ugly and no way to change. we should fix it the same way as routing rules.

Id #2062 | Release: vNext | Updated: Jul 14 at 7:00 AM by zjufish | Created: Jul 14 at 7:00 AM by zjufish

Web API OData: Invoking bound actions with a non-null EntitySetPath and entity return type causes exception

Repro steps: Build EDM model without Web API model builders Add a bound EdmAction to EDM model with return type equal to an existing entity type in the model, and EntitySetPath equal to new EdmPat...

Id #2061 | Release: v5.3 Beta | Updated: Jul 21 at 9:01 PM by goldenfire6 | Created: Jul 11 at 9:40 PM by goldenfire6

Web API OData: Invalid Web API ODataPath attached to HttpRequestMessage when deleting an entity reference from a collection

Repro steps: Have two entity types, say Customers and Orders, with a 1 to N navigation property associating them in the EDM model (1 customer has many orders) Issue DELETE request to <svcroot>/Cu...

Id #2060 | Release: v5.3 Beta | Updated: Jul 24 at 3:34 AM by fenzhao | Created: Jul 11 at 8:41 PM by goldenfire6

The OData untyped scenario is very slow (ODataV3/V4)

With the untyped scenario support, users can build EdmModels from CSDL files as following: if (!CsdlReader.TryParse(new[] { new XmlNodeReader(xmlDocument) }, out model, out errors)) { ...

Id #2058 | Release: v5.3 Beta | Updated: Jul 11 at 12:23 AM by azhou | Created: Jul 10 at 5:32 PM by yjhong

Html.AntiForgeryToken() adds duplicate X-Frame-Options headers if called more than once

System.Web.WebPages v.3.0.0.0: Sometimes, more than one anti-forgery token is needed in a page (when there are multiple forms). Calling Html.AntiForgeryToken() causes the "X-Frame-Options: SAMEO...

Id #2057 | Release: vNext | Updated: Jul 10 at 4:31 PM by yishaigalatzer | Created: Jul 10 at 3:16 PM by jeremylew

The Header OData-Version is not returned if the response status code is 204 - No Content.

For example, we issue Delete ~/Customers(1), and the response status code is 204. But the header is not included in the response.

Id #2056 | Release: v5.3 Beta | Updated: Jul 11 at 4:54 AM by azhou | Created: Jul 10 at 5:24 AM by jinfutan

Implement ODATA HelpPages Similar to WebAPI

Understanding that ODATA has some limited built-in $metadata documentation, this is a bit arcane and not something I'd put in front of a subscribing customer. I'd want a bit more polished front en...

Id #2055 | Release: None | Updated: Tue at 4:00 PM by dauciunas | Created: Jul 9 at 11:18 PM by kirkpabk

Make ODataPathSegmentTranslator public so that developers can write their own odata path handler.

Now if a developer write his own odata path handler, he has to duplicate the ODataPathSegmentTranslator to translate the ODL odata path to webapi odata path as it is an internal class.

Id #2052 | Release: v5.3 Beta | Updated: Jul 11 at 12:50 AM by azhou | Created: Jul 8 at 2:18 AM by jinfutan

HelpPage VB version throws exception when the model is a generic type

Following was reported from customer...I was able to repro this and verified that C# version works fine in this case: I had a problem with this package when using generic types. I had to replace ...

Id #2050 | Release: vNext | Updated: Jul 9 at 9:26 PM by yishaigalatzer | Created: Jul 7 at 9:35 PM by kichalla

Improve the error message when failing to serialize null collection values

Currently when a user returns an object that includes a collection property and that collection property is null, we throw a 500 error (which is the right kind of error, as it's a programming error...

Id #2049 | Release: v5.3 Beta | Updated: Jul 11 at 12:24 AM by azhou | Created: Jul 7 at 6:00 PM by jacalvar

'Microsoft.jQuery.Unobtrusive.Validation' installation fails because it is unable to find a version of Microsoft.JQuery.Unobtrusive.Validation compatible to JQuery 1.4.1

Microsoft.JQuery.Unobtrusive.Validation requires JQuery >=1.8 and JQuery.Validation >=1.8. But, JQuery.Validation (1.8) needs jQuery (≥ 1.3.2 && ≤ 1.6). Because of this, when NuGet installs the J...

Id #2048 | Release: v5.3 Beta | Updated: Jul 23 at 9:32 PM by yishaigalatzer | Created: Jul 7 at 5:52 PM by yjhong

OData expand filter

The feature in the OData 4 spec where you can filter expanded properties is missing. Will this be added in? Example 90: all categories and for each category all related products with a discontinu...

Id #2046 | Release: vNext | Updated: Fri at 6:37 AM by Belegs | Created: Jul 4 at 10:45 AM by jrote1

Expose publicly conventions classes of OData model builder.

Hi, Could you expose conventions interfaces and base classes (like AttributeConvention) from System.Web.OData.Builder.Conventions namespace to enable developers to create new conventions, to hand...

Id #2044 | Release: v5.3 Beta | Updated: Jul 11 at 12:39 AM by azhou | Created: Jul 3 at 12:11 PM by ldasilva

Asp.net web API 2.2 for Odata V4-$skip, $top, $orderby does not work inside $expand

Hi Having an issue with Asp.net web API 2.2 for Odata V4(V 5.2.0-rtm-140611). I got a DB set Category which contains a group of UnionRanking, and below URL works fine. UR: http://localhost:72...

Id #2037 | Release: vNext | Updated: Fri at 6:43 AM by Belegs | Created: Jun 28 at 2:49 AM by huyq2002

The UpdatedODataResult default response status code should not be 204

The protocol says: 9.1.4 Response Code 204 No Content A request returns 204 No Content if the requested resource has the null value, or if the service applies a return=minimal preference. In this c...

Id #2036 | Release: vNext | Updated: Jul 3 at 3:26 AM by azhou | Created: Jun 27 at 8:31 AM by jinfutan

If-Match and If-None-Match should support value "*"

The OData protocol says, "*" match any value, but exception is thrown if it is the value of If-Match or If-None-Match in the request. The workaround is not to access ODataQueryOptions<T>.IfMatch...

Id #2033 | Release: v5.3 Beta | Updated: Jul 3 at 3:36 AM by azhou | Created: Jun 25 at 8:21 AM by jinfutan

Support collection of primitive value as function parameter

Support collection of primitive value as function parameter

Id #2032 | Release: vNext | Updated: Jul 3 at 3:40 AM by azhou | Created: Jun 25 at 3:32 AM by fenzhao

The targetEdmType of ODataQueryOptionParser should be EdmType of ODataPath

The "targetEdmType" parameter of ODataQueryOptionParser used in ODataQueryOptions constructor should be "EdmType" of ODataPath. But "ElementType" of ODataQueryContext is used as the "targetEdmType...

Id #2031 | Release: v5.3 Beta | Updated: Tue at 3:53 AM by jinfutan | Created: Jun 25 at 2:54 AM by fenzhao

[Required] attribute doesn't work on a property of Complex type.

Say we have below domain modal: public class Account { public int Id { get; set; } [Required] public String Name { get; set; } [Required] public Address Address { get; set; } } public class Addre...

Id #2027 | Release: v5.3 Beta | Updated: Jul 3 at 3:45 AM by azhou | Created: Jun 20 at 10:12 AM by jinfutan

404 error when string literals that include the URL encoded slash (%2F), and backslash(%5C)

This is related to https://aspnetwebstack.codeplex.com/workitem/1947. This is a known issue for 5.2 RTM, and we have a workaround. I'm opening this bug because we think this is something that we s...

Id #2024 | Release: v5.3 Beta | Updated: Jun 24 at 6:04 AM by cysu | Created: Jun 19 at 1:36 AM by yjhong

OData controllers should return 405 by default for verbs that are not implemented.

When you choose not to implement one of the HTTP Verbs on an ODataController, and then call it form a client, the stack returns 404 by default. It should return 405 MethodNotAllowed. As well as...

Id #2023 | Release: v5.3 Beta | Updated: Jun 23 at 1:56 AM by azhou | Created: Jun 18 at 6:45 PM by garethj

Should support NavigationPropertyBinding which contains a Navigation Property to a contained entity.

Say there is such Edm Model as below, now we don't have an API to set the NavigationPropertyBinging: <EntitySet Name="Accounts" EntityType="WebStack.QA.Test.OData.Containment.Account"> <Nav...

Id #2022 | Release: vNext | Updated: Jul 3 at 3:49 AM by azhou | Created: Jun 18 at 7:45 AM by jinfutan

Should support Action/Function returns contained entities.

Now no API is exposed on ActionConfiguration to set the return type of an Action/Function to Contained Entity Type. And these 2 are only for primitive/complex/enum types: public ActionConfigurati...

Id #2021 | Release: vNext | Updated: Jul 3 at 3:54 AM by azhou | Created: Jun 18 at 6:14 AM by jinfutan

ODataModelBuilder/ODataConventionModelBuilder should support setting default value of structural properties.

ODL provides a way to set the value: public EdmStructuralProperty(IEdmStructuredType declaringType, string name, IEdmTypeReference type, string defaultValueString, EdmConcurrencyMode concurrencyM...

Id #2019 | Release: v5.3 Beta | Updated: Jul 3 at 4:02 AM by azhou | Created: Jun 16 at 12:34 PM by jinfutan

Containment and hierarchical relationships

Let's say you have a model like this public class Post { public int Id { get; set; } [Contained] public ICollection<Comment> Comments { get; set; } } public class B { public int Id { get; set; ...

Id #2018 | Release: vNext | Updated: Jul 3 at 4:06 AM by azhou | Created: Jun 14 at 10:35 PM by jacalvar

Support Edm.Date

Currently OData support extends to Edm.DateTime for System.DateTime and Edm.Time for System.TimeSpan. Can we please have the ability to set the Edm as Date? I am storing it as Date in the databa...

Id #2015 | Release: vNext | Updated: Tue at 3:21 PM by TimMc | Created: Jun 13 at 8:44 AM by Apathy

Support $levels in $expand

It's to support $expand($levels=4). One example is: http://odatae2etest.azurewebsites.net/demo/DefaultService/People?$expand=Parent($levels=4)

Id #2014 | Release: v5.3 Beta | Updated: Jun 13 at 3:32 AM by azhou | Created: Jun 13 at 3:32 AM by azhou

Support of adding instance annotations to complex types

It's to add the ability of adding instance annotations to complex types

Id #2013 | Release: vNext | Updated: Jun 13 at 3:08 AM by azhou | Created: Jun 13 at 3:08 AM by azhou

Created should provide a clear error message when it can't generate a link

Repro steps: Define a Users entity set. Create an OData action that doesn't return anything bound to that entity set. Implement the action and use Created to return a user. When you call the a...

Id #2012 | Release: v5.3 Beta | Updated: Jul 3 at 4:14 AM by azhou | Created: Jun 12 at 10:26 PM by jacalvar

Leverage ODL perf improvement on serialization

ODL 6.5 or following release might have a perf improvement on serialization (e.g., an option to not use full validation.) webapi.odata could consider leverage that e.g., in vNext. Provide an opti...

Id #2009 | Release: v5.3 Beta | Updated: Jun 26 at 1:23 AM by azhou | Created: Jun 11 at 3:11 AM by cysu

MultipartFormDataStreamProviderHelper should check ContentDispositionHeaderValue.FileNameStar

Some libraries (e.g. Python) set "filename*" but not "filename" in the Content-Disposition when sending multipart form data for a file. MultipartFormDataStreamProviderHelper should check ContentDis...

Id #2008 | Release: vNext | Updated: Jun 16 at 4:10 PM by yishaigalatzer | Created: Jun 10 at 3:27 PM by ejball

Upgrading to ODL V6.5

ODL 6.5 will be released on 6/30 and available on nuget along with the source code.

Id #2006 | Release: v5.3 Beta | Updated: Jul 11 at 4:55 AM by azhou | Created: Jun 9 at 8:12 AM by azhou

The response context uri should follow up the ODL V4 spec for any operation path request

For detail, please review issue: #1973: The context url in the response from a composable function followed by a property is incorrect. Currently, the fix for a request with operation segments ...

Id #2005 | Release: vNext | Updated: Jun 8 at 11:37 AM by azhou | Created: Jun 6 at 7:17 AM by xuzhg

ODataBatchHandler should contain more common helpers

System.Web.OData.Batch.ODataBatchHandler adds very little value at the moment. it should include more of the code that's common between DefaultODataBatchHandler and UnbufferedODataBatchHandler. F...

Id #2003 | Release: v5.3 Beta | Updated: Jul 4 at 8:27 AM by fenzhao | Created: Jun 5 at 9:30 PM by dougbu

Remove useless parameters in BuildEditLink() & BuildReadLink()

In NavigationSourceLinkBuilderAnnotation.cs, public function BuildEditLink() and BuildReadLink() have useless parameters. Please verify and remove them.

Id #2000 | Release: vNext | Updated: Jun 5 at 6:58 AM by azhou | Created: Jun 4 at 11:58 AM by xuzhg

Provide a way to enumerate all MVC actions

We don't currently have a good way to enumerate all actions and action descriptors in the framework. It's a common ask for extensibility and all the code that does it (correctly) is internal. htt...

Id #1999 | Release: vNext | Updated: Jun 11 at 9:37 PM by yishaigalatzer | Created: Jun 3 at 11:17 PM by nowakra

EnumProperty/$value/something should report error that $value must be the last segment.

If $value is following an enum type property, then it reports that: "Resource not found for the segment 'something'." But it should report that: "The request URI is not valid. The segment '$valu...

Id #1997 | Release: v5.3 Beta | Updated: Jun 11 at 6:14 AM by xuzhg | Created: Jun 3 at 7:15 AM by jinfutan

bug, RazorParser one of the Parse method is infinite looping to itself

main branch, src\System.Web.Razor\Parser\RazorParser.cs, line 46 public virtual void Parse(TextReader input, ParserVisitor visitor) { Parse(new SeekableTextReader(input), visitor); } should b...

Id #1991 | Release: v5.2 RTM | Updated: Jun 4 at 4:29 PM by pranavkm | Created: May 30 at 5:12 PM by xinqiu

OutputCacheAttribute should reuse the response encoding

In OutputCacheAttribute.cs, when the response output is substituted with a StringWriter, the encoding and the culture of the response output are not forwarded to it. Also, because the default Str...

Id #1984 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 4:59 PM by sebastienros

Public access to ActionDescriptor and ControllerDescriptor

When IAuthorizationFilter is implemented, AuthorizationContext provides access to ActionDescriptor and ControllerDescriptor, so that both can be used to check whether controller and/or action is ma...

Id #1983 | Release: None | Updated: May 30 at 10:27 AM by NightOwl888 | Created: May 28 at 10:30 AM by atuzovic

The result of casting a value of DateTimeOffset to String is not always the literal representation used in payloads,

The URL convention says in http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html#_Toc372793843 : Primitive types are cast to Edm.String or a ...

Id #1982 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 6:02 AM by jinfutan

Build action/function and actionimport/functionimport are not correct.

In EdmModelHelperMethods.cs, there are some errors while building the action/function and actionimport/functionimport. For bound action/function, no need to create the actionimport/functionimport...

Id #1980 | Release: None | Updated: May 29 at 4:58 AM by xuzhg | Created: May 28 at 2:58 AM by xuzhg

"&" is not the correct logic symbol used in conditional statement

in AddProcedures function of EdmModelHelperMethods.cs there is a conditional statement as follows: if (procedure.IsBindable && procedure.Title != null & procedure.Title != procedure.Name) Where,...

Id #1979 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 2:27 AM by xuzhg

The "LiteralText" property of ConstantNode in parsed result of ODataUriParser should never be null

The "LiteralText" property of ConstantNode in parsed result of ODataUriParser should never be null For example: parsing "~/FunctionAtRoot(NullableInt32Parameter=1)" The parsed parameter value in...

Id #1978 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 1:35 AM by fenzhao

Navigation link is not correctly generated for nested containment propert

If you have an entity set with an entity type that has a containment navigation property, which the target type also has a containment navigation property, when you do a GET on an entity in the fir...

Id #1976 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 7:17 PM by thebothead

ODataUriParser cannot parse Enum function parameter when its EdmType is nullable

ODataUriParser cannot parse Enum function parameter when its EdmType is nullable. such as ~/FunctionAtRoot(Parameter=NS.SimpleEnum'0') The Parameter is defined as Nullable=true The ODataUriParse...

Id #1975 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 3:40 PM by fenzhao

The context url is incorrect if the response from an action or function is a property of a single entity.

OData protocol part 1 says: 10.16 Operation Result Context URL templates: {context-url}#{entity-set}{/type-name}{select-list} {context-url}#{entity-set}{/type-name}{select-list}/$entity {context-...

Id #1972 | Release: None | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 10:36 AM by jinfutan

Help page: Documentation of data model annotations in "buddy" class (MetadataType)

Hi, nice work with adding documentation of model annotations :-) In many scenarios the model class is a generated partial class. In those cases, the recommended way to add field annotation is via...

Id #1971 | Release: None | Updated: Jun 26 at 4:24 PM by 23skidoo | Created: May 27 at 7:02 AM by ToreErstad

Enforce $ref be the last segment in ODataUriParser with correct error message.

Enforce $ref be the last segment in ODataUriParser with correct error message. Now ODataUriParser supports to have KeySegment and $count follow $ref.

Id #1968 | Release: vNext | Updated: May 29 at 3:52 AM by dougbu | Created: May 26 at 6:33 AM by fenzhao

[unit tests] Confirm no unit tests rely on ambient locale

This is initially more of a work item. But I expect some problems will turn up and need to be fixed. In a quick check, the Turkish user locale does not cause problems when unit testing the web s...

Id #1966 | Release: v5.2 RTM | Updated: Jun 15 at 11:51 PM by dougbu | Created: May 23 at 8:04 PM by dougbu

Move direct annotations in webapi.odata to use v4 vocabulary

Shall move to use v4 vocabulary / capability etc. for the work done last year (etag, query limitations, etc.) Query limitations: - Filterability ($filter) - Sortability ($orderby) - Querya...

Id #1961 | Release: vNext | Updated: May 21 at 4:58 AM by azhou | Created: May 21 at 4:48 AM by cysu

Enum on un-type support

Currently, enum on un-type doesn't work. While, the collection of enum on un-type doesn't work too. As ODL spec says: Structural property can be : 1) primitive type 2) complex type 3) enum ...

Id #1956 | Release: vNext | Updated: Jun 10 at 5:35 AM by azhou | Created: May 20 at 8:36 AM by xuzhg

Support Key As Segment

Now we have to override whole DefaultODataPatchHandler and copy internal class ODataPathSegmentTranslator to support key as segment. Add extensive way in DefaultODataPathHandler and MapODataServic...

Id #1955 | Release: vNext | Updated: Jul 20 at 6:01 PM by wmlrose | Created: May 20 at 1:56 AM by fenzhao

Return OK on CORS preflight requests no matter what

A CORS preflight request is about establishing trust. It's purpose is not to tell whether or not a resource might work, but if a trust can be established between between the calling domain and t...

Id #1951 | Release: vNext | Updated: May 26 at 11:05 AM by jgauffin | Created: May 17 at 7:27 PM by jgauffin

MVC RenderSection with Minification

In MVC often script code write in view pages and not in javascript page and with RenderSection render in _Layout page. with Bundle and Minification can minify javascript and css files but can not m...

Id #1950 | Release: vNext | Updated: May 21 at 10:15 PM by yishaigalatzer | Created: May 16 at 6:48 AM by Mojtaba_kaviani

Support dynamic property on query option

for example: Get ~/Customers?$filter=MyDynamicProperty eq 'xxx' or Get ~/Customers$orderby=MyDynamicProperty

Id #1943 | Release: vNext | Updated: May 20 at 2:37 PM by azhou | Created: May 14 at 6:26 AM by xuzhg

Support CRUD on single dynamic property of open type

Do we want to support CRUD on single dynamic property of the open type? for example: Get ~/Customers(1)/MyDynamicPropertName Post ~/Customers(1)/MyDynamicPropertName Put ~/Customers(1)/MyDy...

Id #1942 | Release: vNext | Updated: May 20 at 2:38 PM by azhou | Created: May 14 at 6:25 AM by xuzhg

Parameters Property of SingleEntityFunctionCallNode should never be null

Now Parameters Property of SingleEntityFunctionCallNode may be null. ODL should create an empty one if it is null just like following nodes did CollectionFunctionCallNode EntityCollectionFunctio...

Id #1941 | Release: v5.3 Beta | Updated: Jul 4 at 8:16 AM by fenzhao | Created: May 14 at 1:38 AM by fenzhao

OData BatchHandler starts and ends batch request on different threads.

HttpBatchHandler starts and ends bacth request on different threads. Assume, you create batching request (BR), including 2 change-sets (CS1, CS2). So, OData batching handler will process BR in ...

Id #1940 | Release: vNext | Updated: Jun 11 at 7:03 PM by adamcaviness | Created: May 13 at 2:21 PM by catahoc

Support more canonical functions in query option

Support more canonical functions in filter query option fractionalseconds Edm.Decimal fractionalseconds(Edm.DateTimeOffset) Edm.Decimal fractionalseconds(Edm.TimeOfDay) http://host/service/Emp...

Id #1933 | Release: vNext | Updated: May 12 at 7:11 AM by azhou | Created: May 11 at 4:56 AM by fenzhao

ODataRoutePrefix and custom HttpControllerSelector

Hi, I am working with webapi and oData v4. I am exposing an entity, say "Order", both via oData and via webapi, So I have two OrdersController, one deriving from ApiController and the other fro...

Id #1931 | Release: vNext | Updated: Jun 8 at 11:38 AM by azhou | Created: May 9 at 3:11 PM by raffaeler

ODL parser should throw when there are single quotes on type name of cast

According to V4 spec, there are no single quotes on type name of cast. such as: cast('Two, Four',NS.FlagsEnum) Now the odl parser is too lax and won't throw if there are single quotes and supp...

Id #1927 | Release: vNext | Updated: May 9 at 2:14 AM by fenzhao | Created: May 9 at 2:14 AM by fenzhao

DropdownListFor modifies the SelectListItem collection passed to it

Hi, When using the DropdownListFor helper and passing to it the collection of SelectListItem from which it is populated, the DropdownListFor will modify the passed collection after it is called; ...

Id #1913 | Release: vNext | Updated: May 14 at 7:27 AM by wutever0 | Created: May 6 at 10:05 AM by wutever0

support non-updatable properties by core.computed or capabilities.nonupdatableproperties annotations

Web API work to able services to support non-updatable properties. This implies that we need to add these annotations in the metadata document and allow data services to set these properties.

Id #1908 | Release: vNext | Updated: Jun 10 at 3:33 AM by garethj | Created: May 5 at 8:15 AM by zjufish

function 'isof' validation does not work well.

http://host/svc/Orders?$filter=isof(%27Edm.String%27) If user specify AllowedFunctions.None in ODataValidationSettings, 'isof' function could still get passed when doing queryoption validation. ...

Id #1905 | Release: vNext | Updated: May 12 at 2:06 AM by fenzhao | Created: May 4 at 3:19 AM by karata

Exception When Expanding Null Enitity

When expanding where one of the entities being expanded is null throws an exception. Take the following example: We have a customer entity which has a "Partner" property that is null if the cust...

Id #1903 | Release: v5.2 RC | Updated: Tue at 11:52 AM by jrote1 | Created: May 2 at 2:21 PM by jrote1

Make FilterGrouping and GetFilterGrouping (HttpActionDescriptor) public

I'm currently in the process of implementing my own IHttpController, which to a large degree mirrors the functionality of the ApiController, but for several reasons can't extend it, the main ones b...

Id #1902 | Release: vNext | Updated: May 7 at 9:41 PM by yishaigalatzer | Created: May 2 at 2:24 AM by Alxandr

Add more test cases to test ODL will compute the links if the service didn't set them

Add more test cases to test ODL will compute the links if the service didn't set them

Id #1897 | Release: vNext | Updated: May 5 at 8:47 AM by zjufish | Created: Apr 30 at 3:32 AM by xuzhg

Support open (dynamic) collection property at open type

Support the open entity type and support the collection as dynamic property on open type (open entity type and open complex type). Thanks.

Id #1896 | Release: v5.3 Beta | Updated: Tue at 2:59 AM by xuzhg | Created: Apr 30 at 1:58 AM by xuzhg

Add $count segement support

$count as a segment should support in WebApi. For example: ~/Customers/$count

Id #1895 | Release: vNext | Updated: May 28 at 6:09 PM by thebothead | Created: Apr 30 at 1:23 AM by xuzhg

Support using member name as value in EnumHelper

I think having the option to use the Enum member name as value would be a good feature. Text values are a lot more descriptive, specially when used in query strings, e.g. ?color=Red instead of ?c...

Id #1894 | Release: vNext | Updated: Apr 30 at 9:19 PM by yishaigalatzer | Created: Apr 30 at 12:49 AM by maxtoroq

$expand with filter does not apply filter.

As per v4 specification I should be able to add a filter to an expanded property: http://host/service/Categories?$expand=Products($filter=DiscontinuedDate eq null) Currently the filter does seem t...

Id #1893 | Release: vNext | Updated: May 5 at 8:48 AM by zjufish | Created: Apr 29 at 8:31 PM by thebothead

Help pages for odata controllers

I would like to request that the help pages, like on standard asp.net web api be provided for odata controllers as well. Currently the tooling does not work for odata. http://stackoverflow.com/qu...

Id #1892 | Release: vNext | Updated: Jul 23 at 2:45 AM by bartmax | Created: Apr 29 at 3:15 PM by psteele706

ConventionHelpers.GetProperties doesn't handle hierachies well

The following is the implementation from the method. The issue is that it only really looks one level deep in the hierarchy: public static IEnumerable<PropertyInfo> GetProperties(EntityTypeConf...

Id #1887 | Release: vNext | Updated: May 12 at 6:40 AM by azhou | Created: Apr 28 at 9:59 PM by jacalvar

Add support for functions that return heterogeneous collections of entity types

I have three entity sets and would like to expose a function that returns a collection whose contents are any number of objects from each of these three sets. According to the CSDL specification ...

Id #1884 | Release: vNext | Updated: May 6 at 8:15 PM by goroth | Created: Apr 25 at 5:25 PM by tyrius

add Prefer header handling logic

ODL 6.0 RTM has a behavior change on instance annotation writing: Do not write annotation by default. Webapi.odata should have logic to read "Prefer" header from request message, and then write "P...

Id #1880 | Release: vNext | Updated: May 5 at 9:00 AM by zjufish | Created: Apr 24 at 3:53 AM by cysu

Delegate deciding the response and content headers of the response to ODL

Currently Web API OData handles what headers go in the response (response headers and content headers). Ideally we would like to leverage ODL for this. In order to do that, we need some way to tell...

Id #1879 | Release: None | Updated: Mon at 6:25 PM by jacalvar | Created: Apr 24 at 3:37 AM by cysu

MultipartStreamProvider does not allow to limit the size of multipart posts to MultipartMemoryStreamProvider

Too easy to max out service memory. See suggestions. https://aspnetwebstack.codeplex.com/discussions/542978

Id #1874 | Release: vNext | Updated: Apr 23 at 6:25 PM by yishaigalatzer | Created: Apr 23 at 3:00 PM by itaid

HttpClient.PostAsJsonAsync does not return the correct ReasonPhrase

If you consume Web API endpoint which returns HttpResponseMessage by setting the custom response message the HttpClient uses generic error messages like "Bad Request" as ReasonPhrase (for 400 Statu...

Id #1873 | Release: vNext | Updated: May 5 at 9:10 AM by zjufish | Created: Apr 23 at 12:27 PM by markoh

ODataUriParser can not parse key segment after function segment

ODataUriParser can not parse key segment after function segment such as: "~/Customers(42)/NS.BoundToEntityReturnsEntityCollectionNoParams()(42)"

Id #1872 | Release: vNext | Updated: May 5 at 9:07 AM by zjufish | Created: Apr 23 at 11:47 AM by fenzhao

NegotiatedContentResult does not copy the error message from the incoming HttpError to HttpResponseMessage.ReasonPhrase

NegotiatedContentResult does not copy the error message from the incoming HttpError to HttpResponseMessage.ReasonPhrase When ASP.NET Web API controller action with signature like this public a...

Id #1871 | Release: vNext | Updated: May 5 at 9:09 AM by zjufish | Created: Apr 23 at 11:34 AM by markoh

Functions/Actions bound to a collection of entity should be advertised.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayinPIs, which is of collection PaymentInstrument type Actio...

Id #1862 | Release: vNext | Updated: May 5 at 9:16 AM by zjufish | Created: Apr 22 at 7:40 AM by jinfutan

The navigation link of a containment navigation property should contain cast segment if the containing entity is actually a derived type.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayoutPI, which is of type PaymentInstrument Build the model ...

Id #1861 | Release: vNext | Updated: May 5 at 9:17 AM by zjufish | Created: Apr 22 at 7:29 AM by jinfutan

support updating a property

Looks like our implementation might not support updating a property for now. The url for updating a property would be the property name appended to the edit url of the entity being updated, as pe...

Id #1857 | Release: vNext | Updated: May 5 at 9:23 AM by zjufish | Created: Apr 22 at 1:10 AM by cysu