Commit Graph

571 Commits

Author SHA1 Message Date
dougbu c0179f74cc Do not repeatedly evaluate `ModelMetadata.Properties` enumeration
- supports useful property updates of `ModelMetadata` instances in the collection
- provide a controllable ordering using the `Order` value
- part of #964
2014-08-15 12:33:22 -07:00
dougbu 53432e1483 Address TODO item in default `object` editor template
- add validation elements per property in this template
- update editor template test to expect new `<span>` in result
2014-08-15 10:50:20 -07:00
dougbu 796ff1d3d3 Add `HideSurroundingHtml` property to `ModelMetadata`
- #843
- add property as well as the related `[HiddenInput]` attribute
- use this property to address some TODOs in default display and editor templates
2014-08-15 10:50:17 -07:00
harshgMSFT 3f952c153f Fixing build break due to tests 2014-08-15 10:28:11 -07:00
David Fowler fa6b3acc4a Removed source files from the project 2014-08-15 09:14:49 -07:00
harshgMSFT 1684d1d322 NoContentFormatter: Writes 204 to the response status code if the value returned is null. 2014-08-14 19:16:26 -07:00
Pranav K 538e589894 Modifying ViewDataDictionary and RouteValueDictionary to copy on write
instead of eagerly copying.

Partial fix for #878
2014-08-14 18:18:54 -07:00
Ryan Nowak b72b44c20c Implement RouteKeyHandling.CatchAll 2014-08-14 15:59:09 -07:00
Ryan Nowak 8bfb6eb8d5 implement a decision-tree-based action selector 2014-08-14 15:45:45 -07:00
Ryan Nowak 3770906c3b Issue #862 Extensibility for action invoker 2014-08-14 13:25:52 -07:00
Ryan Nowak ca7b1bfb1f Rename ReflectedActionInvoke.cs for history tracking 2014-08-14 13:19:12 -07:00
Javier Calvarro Nelson 3ab0c3af29 [Issue #733] Attribute Routing: Implement Order
1. Added an Order property to IRouteTemplateProvider, ReflectedAttributeRouteModel,
   AttributeRouteInfo, AttributeRouteLinkGenerationEntry and AttributeRouteMatchingEntry.

2. Changed the implementation of AttributeRoute to take the order into account when routing
   incomming requests and generating links.

3. Ensured a stable ordering of route entries with the same order and precedence for route
   matching and link generation based on the template text.

4. Added tests to validate that the precedence gets respected in route matching and link generation.

5. Added tests to validate that the order gets respected in route matching and link generation.

6. Added tests to validate that the order gets respected over the precedence for route matching
   and link generation.

7. Added tests to validate that routes with the same order and precedence expose a stable ordering
   for route matching and link generation.
2014-08-14 11:21:05 -07:00
Javier Calvarro Nelson 63d9625536 [Issue #730] Attribute Routing: Flesh out attributes - Part 2
1. Unsealed the Http*Attributes so that they can be extended and customized.
2. Added the same constructors as HttpGet to the rest of the Http*Attributes.
3. Added unit tests to validate the implementations for the IActionHttpMethodProvider.
4. Added functional tests to cover extra attribute routing scenarios like a test for an
   action with an HttpDeleteAttribute on it and action with AcceptVerbsAttribute and an
   action with a custom HttpMergeAttribute implemented.
2014-08-14 11:21:03 -07:00
Javier Calvarro Nelson 21b1174d76 [Issue #730] Attribute Routing: Flesh out attributes - Part 1
1. Added a new AttributeRouteInfo class to store all the information for
   actions that are attribute routed.

2. Added a new ReflectedAttributeRouteModel class to store all the information
   related to attribute routes in the ReflectedApplicationModel.

3. Refactored ReflectedControllerModel and ReflectedActionModel to use ReflectedAttributeRouteModel
   instead of just the attribute route template.

4. Refactored ReflectedActionDescriptorProvider to use AttributeRouteInfo and ReflectedAttributeRouteModel
   instead of just the route template.

5. Added a CombineReflectedAttributeRouteModel method in ReflectedAttributeRouteModel that handles
   combining two ReflectedAttributeRouteModel instances.

6. Removed the AttributeRouteTemplate class and moved the methods for combining attribute routes to the
   ReflectedAttributeRouteModel class.

7. Added unit tests for ReflectedActionModel and  ReflectedControllerModel that
   cover the usage of AttributeRouteInfo.

8. Added unit tests for CombineReflectedAttributeRouteModel.
2014-08-14 11:21:01 -07:00
Pranav K 26f98b481a ViewComponents should render partial views
Fixes #960
2014-08-14 11:14:05 -07:00
dougbu 654d45812b Correct build break
- incorrect XML comment syntax for a few parameter references
2014-08-14 11:03:29 -07:00
Pranav K fb773f4814 ViewEngine shouldn't throw when it doesn't know about the extension
Fixes #984
2014-08-14 10:53:01 -07:00
dougbu 77066a3ade Improve XML comments in `HtmlHelper` and related classes and interfaces
- #847 line 1: copy XML comments from interfaces to extension methods
- lots of wording changes to be more consistent
 - core text split from PR #866, where @rynowak and I hashed out the words
 - to extent possible, reuse words between method descriptions

- add a few missing `<param/>` and `<typeparam/>` elements and fill in empty ones
- display more HTML elements as tags
- use `<c>true|false|null</c>` more often
- add `<remarks/>` describing behaviour of input helpers e.g. `CheckBox()`
- add `<remarks/>` explaining "renders"
- add `<remarks/>` containing example expression names

nits:
- "The expression" -> "An expression"
- make examples for `ObjectToDictionary()` and `AnonymousObjectToHtmlAttributes()` more consistent
- move `<typeparam/>` elements (that existed) after all `<param/>` elements
- explain "checked" attributes better, removing some duplicated words from the `RadioButton[For]()` descriptions
- correct `routeValues` description in `GenerateForm()` comments
2014-08-14 10:42:57 -07:00
Pranav K 439101d766 Adding doc comments for ModelBindingContext
Fixes #865
2014-08-13 17:02:49 -07:00
sornaks 9c4d7806a7 Introducing ByteArrayModelBinder.
-Checks for ModelType before processing.
-Ignores quotes in ByteArrayModelBinder.
-Unit,functional Tests.
-ModelStateError is set when Covert.FromBase64String(value) throws.
2014-08-13 15:15:52 -07:00
sornaks e6f4f0fec6 Introducing Activator for ViewComponents. 2014-08-13 14:22:43 -07:00
dougbu 75525ab525 Wrap a long URI 2014-08-13 11:08:42 -07:00
David Fowler 079fe5749d Added comment about the source of the Covert method 2014-08-13 09:30:01 -07:00
David Fowler 6f54d05105 Made razor compilation more robust
- Support other kinds of references when compiling razor views
- Cache application references since they can't change throughout the lifetime
of the running application
2014-08-12 21:44:21 -07:00
Pranav K edce771959 Fixing doc comment in RazorView 2014-08-12 10:50:53 -07:00
Pranav K 90b40832ff Modify RazorView to be instantiated via TypeActivator
Partial fix for #889
2014-08-12 10:37:00 -07:00
Pranav K 9e68a163fd Make RazorPage.IUrlHelper a non-public property
* This allows for injection of the property in cshtml files wthout running
in to compilation errors
* Make IUrlHelper a default injected service

Fixes #816
2014-08-12 10:12:23 -07:00
harshgMSFT 6ee034e64f ProducesAttribute +
Adding Functional Tests

Conflicts:
	src/Microsoft.AspNet.Mvc.Core/Formatters/OutputFormatter.cs
	src/Microsoft.AspNet.Mvc.Core/Resources.resx
	src/Microsoft.AspNet.Mvc.HeaderValueAbstractions/project.json
	test/Microsoft.AspNet.Mvc.FunctionalTests/project.json

Adding Resources + tests

Conflicts:
	src/Microsoft.AspNet.Mvc.Core/Properties/Resources.Designer.cs
	src/Microsoft.AspNet.Mvc.Core/Resources.resx

Adding produces content Attribute

Conflicts:
	src/Microsoft.AspNet.Mvc.Core/Microsoft.AspNet.Mvc.Core.kproj

Conflicts:
	src/Microsoft.AspNet.Mvc.Core/Microsoft.AspNet.Mvc.Core.kproj
	test/Microsoft.AspNet.Mvc.Core.Test/Microsoft.AspNet.Mvc.Core.Test.kproj
2014-08-11 17:52:55 -07:00
Pranav K 74bb8288b0 Making RoslynCompilationService a singleton.
* Minor code cleanup from previous compilation related PR.
2014-08-11 14:36:58 -07:00
harshgMSFT 927821a8ac Data Token support changes 2014-08-11 11:38:10 -07:00
Pranav K c12a4795ca Removing AdditionalInfo from CompilationResult since we can't always pass
it into exception thrown

All values in Exception.Data need to be serializable which is not true for
the diagnostics. Removing this property since we can't pass it through.
2014-08-11 10:25:12 -07:00
Pranav K 5e010597cd Propogate additional compilation data from RoslynCompilationService
* Update CompilationFailedException to include path of file being compiled
* Pass in path being compiled to Rolsyn.
* Adding doc comments for compilation pieces

Fixes #869
2014-08-08 18:22:13 -07:00
dougbu d95b85d057 Simplify some XML comment references
- follow VS fixup suggestion and change e.g. `<see cref="System.String"/>` -> `<see cref="string"/>`
2014-08-07 17:25:06 -07:00
dougbu 147b4416b5 Correct gaps in PR #934
- correct XML comment typo introduced in `HtmlHelper` in 56d66c090e (bad merge)
- fix missed `null` requirement for `@Html.RadioButtonFor()` and remove buried `null` check
- add back `Environment.Newline` to `@Html.TextArea()` (was dropped though comment wasn't)
2014-08-07 16:16:03 -07:00
Chris Ross cd3e1da219 Fix Challenge params order. 2014-08-07 16:03:34 -07:00
harshgMSFT d3407ff212 Routing related fixes for #55 2014-08-06 17:11:29 -07:00
dougbu 7ab93d34e4 Remove incorrect references to `HtmlHelper` class
- extension methods extend `IHtmlHelper`
2014-08-06 16:08:22 -07:00
dougbu 5bdf7955a0 Correct extension class names to match containing files
- #874 line 5
- `EditorExtensions` -> `HtmlHelperEditorExtensions`
- `SelectExtensions` -> `HtmlHelperSelectExtensions`
2014-08-06 16:08:20 -07:00
dougbu f4d53a0045 Prefer `IHtmlHelper` methods elsewhere in our code
- #847 line 7 sub-bullets
- don't call extension methods from our templates
 - partially addressed in PR #934 (for methods changed there)
- don't reference extension methods from XML comments
2014-08-06 16:08:17 -07:00
dougbu 4c5aa15f0b Call `IHtmlHelper` methods from extension methods
- don't call other extension methods
- #847 line 7
- remove extension methods that do nothing but pass through to the interface method
 - weren't exactly ambiguous (interface method wins) but were useless
2014-08-06 16:08:14 -07:00
dougbu 56d66c090e Make HTML helper `null` handling consistent
- #874 lines 3, 4, and 6
- correct `Value()` to treat a `null` expression name the same as `string.Empty`
- add missing `[NotNull]` attributes in `EditorExtensions` and for `GenerateIdFromName()`
- consistently pass `null` for default expression names to the helpers
 - for example, from extension methods
- add test cases using `null` for expression name

nits:
- correct summary XML comment for `HtmlHelper` class
- use named parameters and prefer interface (not extension) methods in changed calls
- use `string.Empty` instead of `""` in a few tests
2014-08-06 16:04:56 -07:00
dougbu 8ab11bc073 Correct XML comment syntax
- fix problems at least with Roslyn compiler and VS IntelliSense or the Object Browser
 - `<see langref="keyword"/>` generates nothing
 - `<example>` at top level (outside `<summary>`) generates nothing
 - curly braces don't become angle brackets outside `<see cref="reference"/>` references
  - yeah, a point @yishaigalatzer asked about in a previous PR
- `<see href="reference"/>` is not valid
- correct some invalid use of angle brackets and remove useless empty elements
- correct unresolved XML comment references; generally, add namespace prefix

Symptoms for some of the above issues included
- generated XML comments such as `<!-- Badly formed XML comment ... -->`, usually indicating an unclosed element
- generated XML attributes such as `cref="!:..."`, indicating a broken reference
 - in a couple of cases we had `<typeparamref cref="TOption"/>`; attribute should be `"name"`

Few wording changes beyond
- `"opening </form> tag"` -> `"<form> start tag"`
- `"closing </form> tag"` -> `"</form> end tag"`

Also correct two typos in `HtmlHelper`

Will create a unit test to ensure XML syntax doesn't degrade going forward.  Separate PR.
- for now, check using `dir -r *.xml | sls '!'`
2014-08-05 14:24:48 -07:00
Pranav K eaee27756c Updating project.json to use frameworks token 2014-08-05 12:15:11 -07:00
Pranav K 5168808906 Introducing RazorTextWriter
RazorTextWriter represents the result of rendering a page as a sequence of
strings rather than a concatenated string. This avoids building up large
strings in memory.
2014-08-05 10:09:04 -07:00
dougbu dc58eb297d Remove unused `using`s from 3db0a80306 change
- see 3db0a80306
2014-08-04 18:10:50 -07:00
Ryan Nowak 383c6305e1 Fix for issue #349 2014-08-04 16:49:24 -07:00
dougbu 3db0a80306 Remove HTML helpers with `IDictionary<string, object>` parameters
- see line 2 of #874
- focus on `TextBox[For]()` and `ValidationSummary()`

related fixes included here:
- `TextArea[For]()` documentation incorrectly indicated their `htmlAttributes` parameters were dictionaries
- handle `htmlAttributes` parameters more consistently; create a dictionary only when necessary
2014-08-03 22:37:42 -07:00
dougbu 7845a8fbe1 `@Html.DisplayName()`, `.DisplayText()`, `.Id()`, `.Name()`, `.Value()` return `string`
- fixes #566 and part of #847
- allows compositions such as `@Html.Label("property", Html.Id("property"))`
  and `@Html.Raw(Html.DisplayText("property"))` (this one is not recommended)
- adjust XML comments to match
- add missing XML comments to `HtmlHelperValueExtensions`
- nit: `TInnerModel` -> `TModelItem`

- increase XML comment consistency for changed methods
 - generally make wording more consistent e.g. how we use words such as
   "returns"
 - use `<see langref="string|true|false|null"/>` more
2014-08-01 21:06:20 -07:00
Ben Brown 01f5fec210 Added Logging to Mvc 2014-08-01 15:33:47 -07:00
harshgMSFT 11d6c507f9 Stylecop fixes 2014-08-01 14:21:00 -07:00
harshgMSFT 19f3f78b3e Adding TextPlainFormatter to always handle returning strings as text\plain format.
Conflicts:
	src/Microsoft.AspNet.Mvc.Common/Encodings.cs
	src/Microsoft.AspNet.Mvc.Core/Formatters/JsonOutputFormatter.cs
	src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs
	test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectContentResultTests.cs
	test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs
2014-08-01 13:47:23 -07:00
David Fowler 5708f7592b Changing GetLibraryExport to GetAllExports 2014-07-31 16:55:01 -07:00
dougbu 7ec4ab021e Make longest `@Html.DisplayForModel()` overload an extension method
- consistent with @Html.EditorForModel()` overloads
2014-07-31 12:01:28 -07:00
dougbu 40eb05f7e4 Improve `HtmlHelper` extension points
- address all of #659 and a bit of #874 (avoid `public virtual` methods in
  `HtmlHelper`)

- make `MetadataProvider` and `GetClientValidationRules()` `public` and
  therefore available to extension methods
- remove unused `GetValidationAttributes()` overload
- make remaining `GetValidationAttributes()` overload (and not
  `GetClientValidationRules()`) `virtual`, allowing derived classes to
  change the attributes without overriding all callers
- reverse `GetValidationAttributes()` and `GetClientValidationRules()`
  parameter order to match precedence
- add `GenerateName()` and `GenerateValidationSummary()` to make
  `protected virtual` method names consistent
- `Name()`, `ValidationSummary()` and `TextArea()` are no longer `virtual`
  because `protected virtual Generate*()` methods exist for all
2014-07-31 12:01:09 -07:00
dougbu b8960219b4 Fix Stylecop failure
- long line
2014-07-30 23:02:44 -07:00
Pranav K 9c545aa343 Updating System.Xml.ReaderWriter to 4.0.10.0 2014-07-29 22:11:50 -07:00
harshgMSFT 01260515f1 Responding to comments 2014-07-29 18:25:34 -07:00
harshgMSFT 2fe2efa94a Moving to the latest pattern of Specifying formatters using options 2014-07-29 18:02:10 -07:00
harshgMSFT 307c191c17 Adding support for content negotiation.
This change consists of :
1. Conneg based on request headers, supports the following 3 scenarios:
	a. ContentType property on ObjectResult set to null or is empty.
	b. ContentType property on ObjectResult set to a single content type.
	c. ContentType property on ObjectResult set to multiple content types.

2. Parsing Helpers, comparers and extensions for comparing various http headers.
3. Tests.

Open workitems:
1. Remodel JsonResult and ContentResult to be a derivation of ObjectResult.
2. Populate DeclaredType.

Conflicts:
	src/Microsoft.AspNet.Mvc.Core/Formatters/OutputFormatterDescriptor.cs
	src/Microsoft.AspNet.Mvc.Core/Microsoft.AspNet.Mvc.Core.kproj
	src/Microsoft.AspNet.Mvc.Core/OptionDescriptors/OutputFormatterDescriptorExtensions.cs
	src/Microsoft.AspNet.Mvc.Core/Properties/Resources.Designer.cs
	src/Microsoft.AspNet.Mvc.Core/Resources.resx
	src/Microsoft.AspNet.Mvc.HeaderValueAbstractions/MediaTypeHeaderValue.cs
	src/Microsoft.AspNet.Mvc.HeaderValueAbstractions/MediaTypeWithQualityHeaderValue.cs
	src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs
	src/Microsoft.AspNet.Mvc/MvcServices.cs
	test/Microsoft.AspNet.Mvc.Core.Test/Microsoft.AspNet.Mvc.Core.Test.kproj
	test/Microsoft.AspNet.Mvc.Core.Test/OptionDescriptors/OutputFormatterDescriptorExtensionTest.cs
	test/Microsoft.AspNet.Mvc.HeaderValueAbstractions.Test/MediaTypeHeaderValueParsingTests.cs
	test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs
2014-07-29 17:26:56 -07:00
Pranav K 225b4903cf Reacting to Roslyn package changes 2014-07-29 16:50:19 -07:00
Ryan Nowak 2987f98283 Adding parameter replacement 2014-07-29 16:14:57 -07:00
Ryan Nowak 96c759e25c Add friendly name to action descriptor. Issue 820
Used in error messages for various attribute routing pieces, and anywhere
that you need a display name for an AD.
2014-07-29 15:21:34 -07:00
Ryan Nowak 2f9501458f Add friendly name to action descriptor. Issue 820
Used in error messages for various attribute routing pieces, and anywhere
that you need a display name for an AD.
2014-07-29 15:14:59 -07:00
sornaks cee73c0af3 1. Introducing XML Input Formatters.
2. Adding DelegatingStream class
3. Unit + Functional tests for formatters.
2014-07-29 15:04:23 -07:00
dougbu 43d1253936 Cleanup unused `FormContext` members due to legacy validation removal
- provide new property back for customer use
- remove unused FieldValidationMetadataClass
2014-07-29 10:44:12 -07:00
dougbu b5dcc9895d Fix #620, Remove legacy / non-unobtrusive client side validation
- remove `ViewContext.UnobtrusiveJavaScriptEnabled` property and all references
- avoid `ViewContext.GetFormContextForClientValidation()` calls since
  ternary expression is more explicit and we were inconsistent
- improve `ValidationMessage()` comments
- don't treat `ModelState.IsValid` as if it were still nullable
2014-07-29 10:43:19 -07:00
Javier Calvarro Nelson b0d52f73fd [Issue #527] Revive common ActionResults - Part 1.
1. Added HttpNotFound() to Controller.
2. Updated HttpStatusCodeResult to expose the StatusCode as a property.
3. Added unit tests for HttpNotFound() and for HttpStatusCodeResult.
4. Updated the MvcSample to add an action that uses HttpNotFound().
5. Brought back HttpNotFoundResult and added unit tests for it.
2014-07-25 13:04:59 -07:00
dougbu cd0285183e Fix StyleCop issues 2014-07-25 10:51:40 -07:00
Pranav K 24f74222f5 Introducing Controller.TryUpdateModel
This changeset reintroduces some of the overloads for
Controller.TryUpdateModel.

Fixes #415
2014-07-25 10:08:44 -07:00
Pranav K da0bf6f7d8 Commonizing code in option provider
* Adding ValueProviderFactoryProvider and CompositeValueProviderFactory to
  maintain parity in pattern with other option types.

Fixes #818
2014-07-25 06:52:00 -07:00
Pranav K 92e26cf8e0 RazorView should not create new ViewContext when rendering pages.
For pages that can pop back (e.g. Partial pages \ View Components), the
invoking component already creates a new ViewContext. ViewStart, Pages
and Layouts need to share the same Layout. This is required for sharing
ViewData values (such as title).

Fixes #861
2014-07-25 06:37:53 -07:00
dougbu 48085eea08 Correct `ModelMetadata.IsRequired` to honour overrides
- subclasses would not calculate a value because `ModelMetadata` constructor
  set this property
- meant presence of a `[Required]` attribute in the model was ignored
2014-07-24 18:32:13 -07:00
dougbu 80a27c6f3b Add `ModelMetadata.DisplayName` property
- value comes from `Name` property of `[Display]` attribute
- use new property in `@Html.DisplayName()` and `@Html.Label()`; remove associated TODO comments
2014-07-24 18:31:48 -07:00
dougbu f4b582f654 Remove incorrect override of `ModelMetadata.GetDisplayName()`
- this method delegates to a number of `ModelMetadata` properties
- no use cases for overriding; should not be `virtual`
- `ModelMetadata.DisplayName` override using `DisplayAttribute.GetName()` coming in next commit
2014-07-24 16:49:02 -07:00
harshgMSFT b1912d799c Moving to RandomNumberGenerator as CryptRandom is not supported in Mono 2014-07-24 14:07:58 -07:00
Pranav K 47d227cbf2 Modify FindView and FindPartialView to accept ActionContext
Fixes #787
2014-07-24 11:48:23 -07:00
harshgMSFT a2561281b7 Adding MvcOptions.OutputFormatters property. 2014-07-23 17:46:17 -07:00
harshgMSFT 8ed7dadfd8 Fixing project.json in Mvc 2014-07-23 17:22:46 -07:00
harshgMSFT 1df4738a19 Adding OutputFormatter base class 2014-07-23 16:50:22 -07:00
Pranav K e28adbfb3d ViewStarts need to be executed as part of View execution
Fixes #834
2014-07-23 16:45:25 -07:00
harshgMSFT b8ab5c5063 Http Abstractions for parsing Http headers needed for conneg. 2014-07-23 16:28:32 -07:00
Ryan Nowak d13f6474d8 adding a few tests for areas 2014-07-21 14:52:44 -07:00
Ryan Nowak 1b07c89322 cr feedback 2014-07-21 14:52:41 -07:00
Ryan Nowak 745239f09f Adding Attribute Routing Link Generation 2014-07-21 14:52:38 -07:00
Pranav K 340bd7550a Adding RazorView to Microsoft.AspNet.Mvc.Razor
RazorView was part of the previous commit but was separated to make it
easier to see the diff in RazorPage that was formerly named RazorView

Adding IRazorPage and changes per code review comments
2014-07-18 21:14:45 -07:00
Pranav K 9e535f6897 Separating view execution and Razor behavior
* Introducing RazorPage and RazorPageOfT that represent the Razor
  execution aspect of view execution. Moving view execution hierarchy behavior
  (Layout, partial views etc) into a separate RazorView type.

* Renaming IVirtualPathViewFactory to IRazorPageFactory,
  IRazorViewActivator to IRazorPageActivator

* Renaming VirtualPathViewFactor to FileBasedPageFactory to
  correctly reflect what it does.

Fixes #814
2014-07-18 14:58:12 -07:00
Pranav K c1112fcaf1 Move ValueProviders to MvcOptions
Fixes #778
2014-07-17 21:02:47 -07:00
Pranav K d619b0df3b Reacting to System.Security.Cryptograph.Encryption package rename 2014-07-17 09:28:25 -07:00
Ryan Nowak bff94f169f Fix for issue #610 - Ignore internal and nested types
This change exludes internal and nested types from being treated as
controllers. This is consistent with MVC5's behavior.

DefaultActionSelectionConventions was primarily tested through running
action selection. I wanted to also test the methods with substantial logic
in this class, so I moved a spate of a classes from private classes inside of the
integration tests to public classes so they could be shared. I also added
tests to fill gaps in DefaultActionSelectionConventions, which is the vast
vast majority of this change.
2014-07-16 16:33:26 -07:00
Pranav K 9f8c656b31 IUrlHelper and IViewComponentHelper need to be activated
* Removing Init method and using [Activate] to activate IUrlHelper.
* Moving IViewComponentHelper to default injected properties
* Adding functional tests to verify these properties are injected \
  activated

Fixes #789
2014-07-16 16:24:03 -07:00
Yishai Galatzer 472e500864 Cache file info access in viewengine
Move compilation and VirtualPathViewFactory to be singletons
And cache access to files.

The cache time is controlled by MVC options.
The cache is implemented in the ExpiringFileInfoCache.cs
2014-07-16 13:12:21 -07:00
Javier Calvarro Nelson 87c430ae19 [#732] Attribute Routing: Implement `~/` for overriding a prefix
This change allows a user to override a route prefix set using
[Route("...")] on the controller by providing a route template
on the action that starts with "~/" or "/". For example,
[HttpGet("~/...")] or [HttpGet("/...")]

If the user specifies a template in [Route] that starts with "~/"
or "/", we will just strip the prefix from the template and use
the remaining part of the template.

The reason to do this is that there's a reasonable extensibility
scenario where a user can implement a global prefix for routes as
a convention (using IReflectedApplicationModelConvention), and use
~/ to escape that prefix (just like we support with action-level routes).
2014-07-16 09:40:38 -07:00
Pranav K bbdb2dfbf2 Adding support for activating view properties
Fixes #700
2014-07-15 16:26:07 -07:00
Pranav K f6106e424e Reacting to System.Collections versioning change 2014-07-14 15:54:00 -07:00
Pranav K 65dfbed8d8 Reacting to System.Collections version change 2014-07-14 15:19:32 -07:00
Pranav K 3692cc7d83 Revert "Adding support for activating view properties"
This reverts commit 21bb8cb9fb.
2014-07-14 11:42:41 -07:00
Pranav K 21bb8cb9fb Adding support for activating view properties
Fixes #700
2014-07-14 10:40:07 -07:00
David Fowler 7e7c56ce48 Renamed configurations to frameworks in project.json 2014-07-13 21:58:12 -07:00
sornaks 720923a1a4 Moving UTF8EncodingWithoutBOM.cs to Common and renaming it as Encodings. 2014-07-10 10:47:54 -07:00
Yishai Galatzer 039762c497 Remove unnecessary awaits to speed up cold startup time.
The await/async patterns adds a state machine that takes time to jit, in this
case the await is not necessary and the code remains simple without adding
continuations.
2014-07-10 09:42:08 -07:00