Commit Graph

598 Commits

Author SHA1 Message Date
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
Pranav K f1c4a8e497 Change FormValueProviderFactory to use GetContentType for media type matching
Fixes #68
2014-03-21 12:10:12 -07:00
Ryan Nowak 1ca2203421 cr feedback 2014-03-21 11:13:15 -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
Pranav K f8dd52dfe3 Reintroducing BindingBehaviorAttribute attribute
* Porting MutableObjectModelBinder tests
* Fix issues in MutableObjectModelBinder introduced by changing from
  TypeDescriptors to reflection
2014-03-19 16:52:02 -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
Pranav K 072e2cc1f1 Updating DataAnnotations version in project.json 2014-03-18 20:56:08 -07:00
Pranav K eae9d3a951 Update GenericModelBinder.BindModel to use correct overload of
Activator.CreateInstance
2014-03-18 16:34: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 f714425619 Revert "Address CR comments"
This reverts commit d815329f71.
2014-03-17 22:52:39 -07:00
dougbu d815329f71 Address CR comments
- reduce #if use
- remove outdated comment
2014-03-17 22:49:30 -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
N. Taylor Mullen f8179f03e4 Trigger view rendering asynchronously.
This is as simple as modifying the base class to return task and await the ExecuteAsync method.  Also added a piece to the sample project to verify functionality.
2014-03-17 12:18:54 -07:00
David Fowler 0247c3a393 Updated RoslynCompilationService to account for new changes to API 2014-03-16 23:42:50 -07:00
Ryan Nowak 1a430f90ed porting to web sample 2014-03-14 13:06:27 -07:00
Ryan Nowak 51e5a5bf19 Fix for issue #57
Replaced ActivatorUtilties with ITypeActivator in WebFX.
2014-03-14 12:51:20 -07:00
Ryan Nowak a5cb050b97 Using AutoFac to register open generic service types 2014-03-14 12:46:17 -07:00
Pranav K 90e6897247 Fixing build 2014-03-14 10:22:37 -07:00
Pranav K d86298ffe1 Switching over placeholder attributes to use DataAnnotation attributes 2014-03-14 09:48:40 -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 d9867b4831 Changing IModelValidatorProvider DI to be transient for now 2014-03-13 12:04:45 -07:00
Pranav K e434918337 Reintroduce model validation 2014-03-12 21:55:50 -07:00
Stephen Halter cca3f92c5f Temporarily migrate the MvcSample project to Autofac 2014-03-12 15:17:41 -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
Yishai Galatzer 9af7c2bbfb remove usings, fix spacing 2014-03-11 13:49:26 -07:00
Ryan Nowak 5867a6a5fc CR feedback that didnt get merged 2014-03-11 13:06:01 -07:00
Yishai Galatzer ed4d29042a Remove unused/non exiting service from RazorViewEnginer
Rename PathBaseViewFactory.cs to match the class name VirtualPathViewFactory
2014-03-10 23:32:55 -07:00
David Fowler e991e86863 Updated roslyn compilation to use new host interface. 2014-03-10 23:17:52 -07:00
David Fowler 3e049fed75 Fixed compilation errors in VS 2014-03-10 23:04:31 -07:00
Yishai Galatzer 6f0151ba5e CR Feedback, add ordering sample to the MVCSample.
null result handling in ActionResultFilterEndPoint
2014-03-10 22:13:06 -07:00
Yishai Galatzer 8ff65267f9 remove comment 2014-03-10 22:13:05 -07:00
Yishai Galatzer 9d3e5b5a81 Rename FilterDescriptorComparer to FilterDescriptorOrderComparer 2014-03-10 22:13:04 -07:00
Yishai Galatzer 28e0792db6 CR feedback 2014-03-10 22:13:03 -07:00
Yishai Galatzer 7ddf8a7bdb Move global filters addition to AD creation time
Add origin, and simplify sorting.
Add type filter
2014-03-10 22:13:02 -07:00
Ryan Nowak 86f18f5da7 Moving ViewContext to rendering, breaking coupling to RequestContext 2014-03-10 16:15:46 -07:00
dougbu 59eaa8f642 Fix 4 unit test failures
- NRE in TypeExtensions.IsCompatibleWith()
- ComplexModelDtoResultTest.Constructor_ThrowsIfValidationNodeIsNull() won't work w/o validation
- BindModel_Error_FormatExceptionsTurnedIntoStringsInModelState() looking for wrong message
- BindModel_Error_FormatExceptionsTurnedIntoStringsInModelState_ErrorNotAddedIfCallbackReturnsNull() a dupe
- Also add [NotNull] attributes in TypeExtensions
2014-03-10 12:27:32 -07:00
Pranav K 123089d5c7 General razor clean up
* Change Razor compilation to use ApplicationBasePath to determine the
  app root
* Change class name generation to be based on app-relative path.
2014-03-10 11:56:07 -07:00
Ryan Nowak 2731caf476 Fix API breaking change from routing 2014-03-10 10:40:15 -07:00
David Fowler e4e665075c Removed unused interface IMetadataReferenceProvider 2014-03-09 01:39:07 -08:00
David Fowler 34641d21e6 Added code path for rendering html encoded content on K 2014-03-08 23:14:40 -08:00
David Fowler 282ccd6999 Remove duplicate paths 2014-03-08 21:12:01 -08:00
David Fowler e62e5a2bef Simplify how we pick dependencies for razor compilation 2014-03-08 17:15:16 -08:00
David Fowler bda7dd8d2d Made razor work with core clr 2014-03-08 15:56:01 -08:00
David Fowler b482a9e3cb Made roslyn based compilation of razor files work
- Now that services are being flowed through the entire stack
we can nuke the csc service and always use the roslyn based compilation for views
- The RoslynCompilationService is still very much a prototype but it's a good
 step to see what other services might may or may not need to flow.
- Removed the PhysicalFileSystem construction from Mvc itself. This will come from
 the hosting layer and is newed up temporarily in the PathBasedViewFactory itself.
2014-03-08 15:16:44 -08:00
David Fowler 5de1ae578d Updated common 2014-03-08 01:22:35 -08:00
David Fowler 360f81d0a8 Added required packages for K 2014-03-08 01:10:02 -08:00
Pranav K 574ce6de98 Query and route value provider factories are added to service container
multiple times
2014-03-07 15:08:28 -08:00
Pranav K 28b7597779 Introducing NotNullAttribute for null argument checks 2014-03-07 14:03:28 -08:00
David Fowler eb61728107 Fix webfx compile error.
- Assembly.Load(byte[]) has been removed
- Added IAssemblyLoaderEngine type that flows from the host
2014-03-06 22:11:10 -08:00
Stephen Halter 4d1768ce3c Use the ServiceDescriber class from the DI project in GetDefaultServices 2014-03-06 17:44:54 -08:00
Yishai Galatzer bcfccbd105 Remove allow anonymous (will happen as a separate feature) 2014-03-06 17:06:21 -08:00
Yishai Galatzer 1bcd35f5f1 Code cleanup 2014-03-06 17:02:48 -08:00
Yishai Galatzer 7cf40c8a50 CR feedback 2014-03-06 17:02:47 -08:00
Yishai Galatzer 772f833dc9 Action filters & Authorization Filters working 2014-03-06 17:02:45 -08:00
Yishai Galatzer 6fed92695b Filter execution 2014-03-06 17:01:40 -08:00
Yishai Galatzer f669c1c00e Cleanup & Renames 2014-03-06 17:00:47 -08:00
Yishai Galatzer 8c5db4fdfa Action/ActionResult/ExceptionFilterAttribute(s)
AllowAnonymousAttribute
Name cleanup in ReflectionActionDescriptorProvider
2014-03-06 17:00:47 -08:00
Yishai Galatzer 1783a06dc0 Filter discovery 2014-03-06 17:00:46 -08:00
Yishai Galatzer 4d90d590a9 Default filter provider, instantiates and merges all filters pre action invocation. 2014-03-06 17:00:45 -08:00
Yishai Galatzer 4bb66937e3 Action/ActionResult/ExceptionFilterAttribute(s)
AllowAnonymousAttribute
Name cleanup in ReflectionActionDescriptorProvider
2014-03-06 17:00:44 -08:00
Yishai Galatzer 457016a6da Add the actual filters interface signatures,
Add the AuthorizationFilterAttribute
2014-03-06 17:00:43 -08:00
Yishai Galatzer 75bccbae21 Filter discovery 2014-03-06 17:00:42 -08:00
Yishai Galatzer dc6b1b1a4a Context + ActionDescriptor + IFilter marker 2014-03-06 17:00:41 -08:00
Ryan Nowak 318c19b2f9 Issue #39 move init code into controller factory 2014-03-06 12:44:36 -08:00
Ryan Nowak 9d0cea17dd Changes due to changes in routing take 2 2014-03-06 12:26:09 -08:00
Ryan Nowak 905e84ab0a Changes in WebFx for compatibility with routing 2014-03-05 20:51:41 -08:00
Pranav K 914d8e8a3b Updating DI to use ServiceDescriptors
Fixes #25
2014-03-05 15:59:33 -08:00
Pranav K e87f8c372c Consume ModelBinding from Mvc
* Modify ReflectedActionInvoker to model bind parameters
* Introduce IBodyReader for reading request bodies
* Introduce types for per-action-context specific binders, value providers
  and body readers
2014-03-05 10:13:52 -08:00
David Fowler 05e0d5cabb Updated to newer version of roslyn 2014-03-04 22:59:48 -08:00
David Fowler 710b9ad4ed Use csc compilation to avoid temporary churn in host services 2014-03-03 23:25:24 -08:00
Pranav K 48738b91f4 Updating resx designer file to use updated format 2014-03-03 12:05:00 -08:00
Yishai Galatzer 2688029682 Formatting 2014-03-03 00:46:03 -08:00
Yishai Galatzer c321e40d44 Rename TypeMethodXXX to ReflectedXXX 2014-03-03 00:39:12 -08:00
Yishai Galatzer 6244d55e1f Rename MVC -> MVC.Core, MVC.Startup -> MVC 2014-03-02 23:16:18 -08:00
David Fowler 346f02e37c First stab Roslyn based compilation service for razor pages
- Flow the host service provider to MvcServices
- Use assembly neutral interfaces to access host services
- Added RoslynCompilationService to Microsoft.AspNet.Mvc.Razor
- Modified self host sample as helios needs to be updated to flow more services
2014-03-02 01:14:01 -08:00
Ryan Nowak 5c07c6a07b CR feedback 2014-02-28 12:56:28 -08:00
Ryan Nowak 803f447686 Use INestedProvider for ADP and AIP 2014-02-28 12:56:26 -08:00
Pranav K d920003194 Introduce FormValueProviderFactory to expose form data as a value provider 2014-02-28 11:05:39 -08:00
Pranav K 04c7b50726 Removing IsFromBody property from ModelMetadata 2014-02-26 13:40:35 -08:00
Pranav K 9915b1c767 Reintroduce WriteAttribute methods on RazorView type 2014-02-24 19:55:48 -08:00
Pranav K f1183f57af * Remove unused method of IModelMetadataProvider
* Fix warning in CollectionModelBinder
2014-02-24 17:59:29 -08:00
Pranav K b6c78de4ea Reintroduce model binding 2014-02-23 15:23:58 -08:00
Pranav K 906e68e72e Adding workaround to compilation for web host 2014-02-21 08:09:03 -08:00
Ryan Nowak 9d056167e8 Overload Resolution Skeleton 2014-02-20 11:37:33 -08:00
Yishai Galatzer 941a12daea Action selection based on action descriptors 2014-02-17 22:42:02 -08:00
Yishai Galatzer 1d40372cc3 Renames to prepare for action selection PR 2014-02-16 11:10:21 -08:00
Yishai Galatzer 90daa2587d Minor cleanup 2014-02-15 10:21:27 -08:00
Pranav K 5a22d9b52c Restore @model support in RazorHost 2014-02-13 12:48:02 -08:00
Ryan Nowak 4a801b6c7a integrating routing with WebFX 2014-02-12 18:48:17 -08:00
Yishai Galatzer 1f9d4969a7 CR Feedback 2014-02-12 09:15:16 -08:00
Yishai Galatzer cc3fec2f76 Bring back simple POCO controller
+ HttpContext temporary injection through property
+ 404 when action is not found
2014-02-11 17:25:30 -08:00
Yishai Galatzer 87379400cf rename ControllerAssemblyProvider to IControllerAssemblyProvider 2014-02-10 17:12:41 -08:00
Yishai Galatzer 400240673b Update to CR feedback 2014-02-10 13:29:46 -08:00
Yishai Galatzer a725e4c9b5 Update to support 404
Renamed actiondescriptor to routecontext, because action selection didn't happen yet.
Need to add actiondescriptors back and modify RazorViewEngine to use the right thing.
2014-02-10 13:24:45 -08:00
Yishai Galatzer b6a0969c1c Support per process caching of controller discovery
Scan only relevant (non skipped) assemblies
FinalizeSetup point, to make "stuff" immutable
Support controllers under any namespace
support customizing controller discovery
support customizing skipped assemblies
support customizing multiple controllers with the same name under different namespaces and assemblies
support controller ambiguity detection
2014-02-10 13:24:44 -08:00
N. Taylor Mullen 4cd2cce360 Fix build.
Removed Equals from SetModelTypeCodeGenerator and removed accidentally
committed file.  The Equals method caused a warning without a corresponding
GetHashCode().
2014-02-10 12:30:12 -08:00
N. Taylor Mullen 226d632794 Re-enable the model keyword for Mvc Razor. 2014-02-10 12:00:15 -08:00
Pranav K 3d6740bc8a Update namespace generation in RazorCompilationService to use root
relative paths.
2014-02-07 13:55:59 -08:00
Pranav K cfc6b9ecdd Fixing compilation failure due to change in namespace in Microsoft.AspNet.FileSystem 2014-02-06 16:48:06 -08:00
Pranav K 591e21eea9 Moving MvcService and MvcHandler to a separate assembly
Tenatively named Microsoft.AspNet.Mvc.Startup, the assembly will act as an
entry point into the Mvc handler \ middleware.
2014-02-06 16:21:14 -08:00
Pranav K b51fd08bab Update ViewDataOfT.SetModel to check for type compatibility when setting
model instance.
2014-02-05 14:33:11 -08:00
Pranav K 6c8485b1ef Removing VirtualFileSystem from Razor
* Paths rooted by a leading slash (e.g. /foo) are correctly resolved by the
PhysicalFileSystem. This change is an experiment to determine if we can
get away with not having virtual paths in WebFx.

* Additionally removing types (MetadataVirtualPathViewFactory,
 VirtualPathAttribute) that are currently unused.
2014-02-04 22:08:27 -08:00
Yishai Galatzer 9365004248 Remove derivation based extensibility points. 2014-02-04 13:54:22 -08:00
Yishai Galatzer 764e5f890d Use Json result constructor only from the Action result helper.
Names to be changed, as they don't make much sense at the moment. Keeping them the same for diffing purposes
2014-02-04 13:54:22 -08:00
Yishai Galatzer 2a3f891878 Customizing Json from helper
Add Json to Helper
Guarantee SerializerSettings
2014-02-04 13:54:20 -08:00
Yishai Galatzer 4b4034788c Initial support for JsonResult + Action result mutation from object to Json 2014-02-04 13:54:19 -08:00
Pranav K c91a814ffa Changes to get the sample running again 2014-02-03 21:05:54 -08:00
David Fowler e10699474b Moved Action results to the right folder 2014-02-01 12:37:40 -08:00
Pranav K cc414e0fef * Renaming Mvc.Forms to Mvc.Rendering
* Moving data types to Mvc.ModelBinding
2014-01-30 16:45:40 -08:00
Pranav K 6c9d562fc3 * Using RazorView<dynamic> as base type until we get model support
* Modifying ViewData to share inner dictionary until we figure out how to
  pass it correctly
* Removing unused NuGet.config
2014-01-30 07:26:46 -08:00
Pranav K a6393e77ab Moving MvcRazorHost to a separate assembly 2014-01-29 15:20:48 -08:00
Pranav K cb8a32e5a6 Updating the view engine to use Microsoft.AspNet.Razor package 2014-01-29 10:08:46 -08:00
David Fowler ea97108e76 Swallow errors while trying to load types. 2014-01-26 03:38:24 -08:00
David Fowler 8415b190b1 Fixed how initialize is called. 2014-01-26 00:54:14 -08:00
Pranav K afa22994bf Fixing project.json schemas 2014-01-25 23:57:22 -08:00
David Fowler f36aa5ba3c Fixed up project.json to be more specific. 2014-01-25 22:16:30 -08:00
David Fowler 127b6886c4 Removed the generated csprojes 2014-01-25 17:16:00 -08:00
David Fowler 328d43a638 Updated the sample to use the owin http abstractions glue. 2014-01-25 16:44:35 -08:00
David Fowler 1d27b4e2e4 Remove packages.config 2014-01-25 15:16:24 -08:00
David Fowler a0de7048b5 Ifdef to make stuff compile on both platforms. 2014-01-24 02:20:46 -08:00
David Fowler b0933fdd35 Updated the build and removed older projects. 2014-01-24 02:02:47 -08:00
David Fowler b54a0da6e8 Updated MVC.
- Use new HttpAbstractions
- Updated the build
- Added new projects
2014-01-24 01:55:17 -08:00
David Fowler fb35288326 Removed core services. 2014-01-22 19:35:13 -08:00
David Fowler 477cf79e58 Removed unneeded dependencies and updated owin bits. 2014-01-22 19:03:56 -08:00
Pranav K 7adb658a38 Moving compilation to Microsoft.AspNet.Mvc.Razor 2014-01-22 15:12:28 -08:00
Pranav K df5a6d30d6 * Migrating HtmlHelper stub
* Updating project json files to new format
2014-01-22 12:27:24 -08:00
Pranav K 69a99e5c41 Moving View overloads to Controller base type 2014-01-22 10:59:32 -08:00
Pranav K 7b8a54cc24 * Updating project structure to use the src, test, build, samples format
* Adding build scripts to use K compilation.
2014-01-21 16:15:44 -08:00