Commit Graph

80 Commits

Author SHA1 Message Date
Yishai Galatzer d081300185 Factor filters action to private methods 2014-04-02 18:51:50 -07:00
Yishai Galatzer 9756f74565 Action invocation changes:
Changed 404s to throw
Propagate reflected exception
Add resources for specific errors
2014-04-02 18:51:49 -07:00
Yishai Galatzer b9010072aa Fix github #164 (when return type is object we always return 204) 2014-03-31 18:59:19 -07:00
Sornakumar e8a76cfd7f Merge pull request #151 from sornaks/WebFX153
WebFX-153: Add Content() and Json() to the Controller class.
2014-03-31 15:03:56 -07:00
harshgMSFT 8d4a6c760a Action Selection Convention: Changes for Treating Index method as a default Get/Post method.
Also adds unit tests for the changes.
2014-03-31 12:59:30 -07:00
N. Taylor Mullen a5ed1157d5 Refactor ViewEngine to support partials.
This references WEBFX-95 and is the preliminary part to support Partial helpers.
2014-03-30 17:20:09 -07:00
Yishai Galatzer 54c73e4227 Cleanup + TODO 2014-03-28 16:55:56 -07:00
dougbu 655b329dd0 Increment System.Threading.Tasks package version
- today's build break, mark II

also remove dangling reference to TestCommon
2014-03-27 19:56:27 -07:00
Ryan Nowak ffb73a1ed8 Fix build issues with Injector
This was causing intellisense failures in VS. It looks like the
commandline is able to accidentally pick up the compatability extensions
from the model binding assembly, but this is not the case in VS.

Changed this code not to rely on compatability extensions.
2014-03-27 15:07:28 -07:00
sornaks 007ac9443d WebFX-153: Add Content() and Json() to the Controller class. 2014-03-27 14:12:39 -07:00
Ryan Nowak 6da448fb8e Commonizing JSON writer/serializer code
This doesn't add any new extensibility, and will likely change again in
the future when we add extensibility. For now this is a stopgap to reduce
duplication between JsonResult and JsonViewComponentResult.
2014-03-26 17:02:44 -07:00
Ryan Nowak 469414c419 Adding support for scoped services in WebFX
We'll create a scoped service provider if the middleware that does it
isn't there.

We resolve all of our stuff from the scoped service provider, allowing
users to plug in any scoped things they want.

Ported UrlHelper to be a scoped service.
2014-03-26 12:45:36 -07:00
Ryan Nowak 21e48be06e Patternizing our property injection/initializer 2014-03-26 11:58:20 -07:00
dougbu 8ed5b7b079 Fix WebFx-169 and #118
- move `DynamicObject` derivation up to new `DynamicViewData` class, fixing [WebFx-169](http://projectk-tc:8080/browse/WEBFX-169)
- avoid direct `_data` lookup in previous `TryGetMember()`, fixing [#118](https://github.com/aspnet/WebFx/issues/118)
- rename ViewData -> ViewDataDictionary

Also
- flesh out `IDictionary<string, object>` implementation in `ViewData`
- provide `ViewData` copy constructor that allows TModel to change
- remove `TryGetIndex()` and `TrySetIndex()` implementations; use `ViewData[]` instead
- restore `ViewContext.ViewBag` from legacy MVC
2014-03-26 11:42:52 -07:00
Ryan Nowak 6fb0d5b282 Commonize 'throw on view not found'
Deduping this code by moving it to ViewEngineResult.
2014-03-25 14:25:49 -07:00
Ryan Nowak fa21d1cd65 Remove extra TextWriter parameter from IView
This was here in the legacy code for legacy reasons. We're passing the writer
as part of the ViewContext, so we can remove this extra parameter.
2014-03-25 14:19:43 -07:00
Ryan Nowak 86ac978451 Implementation of ViewComponents 2014-03-25 11:04:37 -07:00
dougbu d3217fd3af Cleanup warnings
- primary action is removing interfaces from Razor that Core exports
- also remove an unused field from Core's `DefaultControllerAssemblyProvider`
2014-03-22 18:58:23 -07:00
David Fowler 47b33b907f Removed System.Runtime.Hosting dependency 2014-03-22 15:17:11 -07:00
Ryan Nowak 89b53aab25 Fix API change in ITypeActivator 2014-03-21 18:16:02 -07:00
N. Taylor Mullen 5b6eb307ae Re-plumb ModelState.
Modified ModelState to only ever be created on the ActionContext and then plumbed/exposed it on ViewData and Controller.  This will enable: ActionFilterContext's will have access to ModelState via its ActionContext member, allow HTMLHelpers to access ModelState via ViewData, and unify the locations of "source" model state.  In the old world we used to copy/replace/instantiate new model state all over unnecessarily.
2014-03-21 16:19:13 -07:00
dougbu 32d031c6eb Add `ModelMetadata` to `ViewData`
- demonstrate `ModelMetadata` is available in a view

Also
- simplify `View()` overloads in `Controller`, pending #110 decisions
- make `Model` in `RazorView<T>` readonly
2014-03-21 14:42:42 -07:00
harshgMSFT f20b798a07 Modifying the Default Action convention to have verb only methods 2014-03-21 12:34:42 -07:00
Ryan Nowak 6610788b75 Restore the TextWriter to ViewContext 2014-03-21 11:13:14 -07:00
Pranav K 8ea196023e Modify controller discovery to only look for types that reference Mvc.Core
assembly
2014-03-21 10:02:54 -07:00
Pranav K 683c5bf9b3 Adding JsonInputFormatter for reading json encoded data from the request
body
2014-03-20 20:48:25 -07:00
dougbu 4364986137 System.Text.Encoding has rev'd 2014-03-20 14:38:54 -07:00
Ryan Nowak c4a15f021f Passing additional data on the ViewContext for resolving views.
This will be necessary for partials, and for Components.

Basically, the view engine uses a dictionary of data to find the top level
view (for an action) - after we do that, we want this context to be
sticky, which means we need to pass it around. This ensures that partials
and components will be resolved under the same paths as the main view.

Currently this 'data' is just the route values - and there is an ongoing
discussing about the right design here. The data that's being passed WILL
change in the future.
2014-03-20 12:18:02 -07:00
Yishai Galatzer 8b6d39507d Feedback: Make common base class for all contexts and all of them expose FilterItem collection
ExtensionMethod will now apply to the base FilterContext class
2014-03-20 09:59:24 -07:00
Yishai Galatzer adffc95b81 AllowAnonymous attribute + Consumption + Sample 2014-03-20 09:59:24 -07:00
dougbu 5875452755 Quick fix-ups
- Move .NET test projects back into net45 folder
- Catch up with latest System.Runtime.InteropServices version
2014-03-19 23:41:17 -07:00
Yishai Galatzer dcc286a299 Refactor FindView to always take a viewName (no null support)
and only use RouteValues (or generically just Dictionary<string, object>).

This is temporary and will change once we get Partials (which are currently just dead code)

For now this will unblock ViewComponents
2014-03-19 18:48:36 -07:00
harshgMSFT 9cd99a42a7 ActionExecutor implementation WebFx W113
The changes include:
1. Action executor changes required for supporting sync and async operations Taksk and Task
2. Adding test project for MVC core - This contains ActionExecutor Tests.
3. Also adding a resources file for MVC core project
2014-03-19 11:10:42 -07:00
dougbu 4bc7c36522 Merge two `TypeExtensions` classes into Common\TypeExtensions.cs
- add missing `[NotNull]` attributes
- remove now-unneeded usings for ...ModelBinding.Internal namespace

Also get ModelBinding test project working under CoreCLR
- create separate k10 and net45 folders under test in VS
- add `[InternalsVisibleTo]` to make `TypeExtensions` visible to test assembly
- correct tests' `CultureInfo` use to compile under CoreCLR
- ifdef out CoreCLR tests depending on Moq, ReadOnly, ...
- remove a couple of tests expecting TypeConverter to work
2014-03-19 09:53:40 -07:00
Yishai Galatzer 227121b3f9 CR Feedback 2014-03-19 09:26:20 -07:00
Yishai Galatzer 7d9a6297f9 Fix debug string 2014-03-19 09:26:19 -07:00
Yishai Galatzer cfb06c0de3 Areas feature - Phase I
1. Areas defined by the Area attribute
2. Areas are a routeconstraint on the actiondescriptor
3. Areas find pages through route values

Other changes:
1. Remove Path from ActionDescriptor - It doesn't make sense with this change
2. Add sample Area
2014-03-19 09:26:18 -07:00
dougbu 3a0add8be8 Cleanup pass: Move Rendering classes to correct namespace
- use Microsoft.AspNet.Mvc.Rendering namespace throughout assembly

Also
- move `IdAttributeDotReplacement` from `TagBuilder` to `HtmlHelper`
- remove commented-out code in `HtmlHelper`
- use `var` and `[NotNull]` more
- `String` -> `string`
- correct Resources references; add missing resources
2014-03-18 14:02:39 -07:00
dougbu 478c220ddb Revert "Merge two `TypeExtensions` classes into Common\TypeExtensions.cs"
This reverts commit d534471515.
2014-03-17 22:53:36 -07:00
dougbu d534471515 Merge two `TypeExtensions` classes into Common\TypeExtensions.cs
- add missing `[NotNull]` attributes
- remove now-unneeded usings for ...ModelBinding.Internal namespace
- remove TypeExtensionTests.cs; don't add .NET 4.5-only
  `[InternalsVisibleTo]` for low-level `IsCompatibleWith()` extension
2014-03-17 21:02:25 -07:00
Ryan Nowak 51e5a5bf19 Fix for issue #57
Replaced ActivatorUtilties with ITypeActivator in WebFX.
2014-03-14 12:51:20 -07:00
Yishai Galatzer 3461c44a5e Move filteritem out to it's own class 2014-03-13 18:29:54 -07:00
Yishai Galatzer 5849ba8544 Cleanup after refactoring 2014-03-13 18:15:24 -07:00
Yishai Galatzer c4481cf390 One more refactoring 2014-03-13 17:26:21 -07:00
Yishai Galatzer fc168d63f6 refactor to return ordered filter list from filter provider
Arrange filters to a pipeline in the action invoker
Allow providing the original filter definition to a type and service filter
2014-03-13 17:26:21 -07:00
Pranav K e434918337 Reintroduce model validation 2014-03-12 21:55:50 -07:00
Ryan Nowak 00f15669dc More CR feedback on URL generation 2014-03-12 11:12:52 -07:00
Ryan Nowak 77a7bb58a6 CR feedback 2014-03-12 10:57:48 -07:00
Ryan Nowak 12985c19ee CR feedback 2014-03-12 10:57:47 -07:00
Ryan Nowak 0ce2c511d4 Adding URL generation to WebFX for controllers and views
This follows a similar pattern to html helpers - a minimal basis interface
that performs the main functionality, and a set of extension methods that
make up the rich API.
2014-03-12 10:57:46 -07:00