Commit Graph

418 Commits

Author SHA1 Message Date
Ryan Nowak 7a8dc36553 Adding controller-as-filter support
If the controller implements IFilter, it will be added to the filters
collection.

It's hardcoded to be 'first' as it was in MVC, but can be overridden by
implementing IOrderedFilter.
2014-05-05 14:03:01 -07:00
Ryan Nowak a9a7663cbd Update MVC for reflection package changes 2014-05-05 10:38:07 -07:00
Louis DeJardin bbcac43aaa Updating DataAnnotations version reference 2014-05-02 20:53:12 -07:00
Ryan Nowak 9c75813c9a Add reference to claims
(cherry picked from commit e1154c7dbfcf6bc91ff266da08b67cbb32b270a8)
2014-05-02 18:46:02 -07:00
N. Taylor Mullen 6dc6ba6d37 Add User helper to controllers and views.
#277
2014-05-02 14:48:21 -07:00
dougbu 31cdc09647 Move Microsoft.AspNet.RequestContainer dependency from MVC sample to MVC
- 🐛 fix; fixes #346
2014-05-02 14:29:19 -07:00
Hao Kung 1faa6f018b Switch to use IServiceCollection 2014-05-02 12:22:49 -07:00
N. Taylor Mullen 4494f40d67 Addressed code review comments. 2014-05-02 12:16:28 -07:00
N. Taylor Mullen 3e398be1f8 Require cshtml ending for full path view names.
If a view represents a full path and does not end in .cshtml the FindView and FindPartialView methods will throw.

#206
2014-05-02 12:16:24 -07:00
Ryan Nowak f5b3ae4a3b Renaming Exception Filter methods
These were accidentally the same names as the action filter methods.
Oopsies. Name taken from MVC and appended Async for the async version
because that's how we roll.
2014-05-01 23:14:47 -07:00
anpete 71acc74899 Merge branch 'dev' of github.com:aspnet/WebFx into dev 2014-05-01 17:42:48 -07:00
anpete 8208cd6b2f Update file headers 2014-05-01 17:42:33 -07:00
N. Taylor Mullen af18392815 Re-updated System.IO.FileSystem version. 2014-05-01 17:11:23 -07:00
N. Taylor Mullen 40bb9d0421 Update FileSystem package version. 2014-05-01 17:01:13 -07:00
Yishai Galatzer fe8ded0ce6 Fix dev14 crash + temporary? .gitignore 2014-05-01 15:10:48 -07:00
Ryan Nowak 81611f13da TEMPORARILY turning off warnings as errors to unblock the CI 2014-04-30 21:55:17 -07:00
Ryan Nowak 93897b6055 Fixing a resources file that needs to be regenerated 2014-04-30 19:26:36 -07:00
harshgMSFT 3765abdfca Adding Support for LinkGeneration for named Routes.
- Adding HtmlHelpers for route link generation.
- Controller Helpers
- UrlHelper and UrlHelperExtensions
2014-04-30 18:34:46 -07:00
harshgMSFT 4541295872 Updating BuilderExtensions to use the new 'Named' MapRoute overload. 2014-04-30 15:44:11 -07:00
Ryan Nowak 8ae1865740 Fix for part of #339
Treat actions with a dynamic constraint or httpmethod constraint as
'better' than those with just route constraints.

This is the first criteria used to filter down the 'best' match, so it's
applied before parameter-arity.
2014-04-30 13:25:48 -07:00
Ryan Nowak 20c8dece7b Adding IFilterFactory
This is a generalized factory/provider for filters - TypeFilterAttribute
and ServiceFilterAttribute are now implemented in terms of this interface.
2014-04-30 13:18:10 -07:00
sornaks 185ad31491 Adding an appropriate sample to use ValidationMessage and ValidationMessageFor. 2014-04-30 11:07:02 -07:00
sornaks f17d444b8a Porting the ValidationMessage changes to suit WebFX requirements. 2014-04-30 10:55:45 -07:00
sornaks 458c389aae Port of changes for ValidationMessage from MVC. 2014-04-30 10:55:43 -07:00
sornaks d63d998e95 Introducing DisplayText, DisplayTextFor, Id, IdFor, IdForModel.
Fixing CachedDataAnnotationsModelMetadata to support NullDisplayText.
2014-04-30 10:23:25 -07:00
sornaks 112a5ddc50 Changes enabling TextArea, TextAreaFor.
Changing the interface to directly include Rows and Columns.
2014-04-30 09:42:07 -07:00
sornaks b899cac4c8 Porting TextAreaHelper from existing MVC code. 2014-04-30 09:35:48 -07:00
sornaks e0592d01af Cleaning up sprinkled null checks and adding it to a centralized place - FromStringExpression 2014-04-30 09:29:30 -07:00
David Fowler 488ec2f52e Added default routes overload 2014-04-29 18:00:49 -07:00
Ryan Nowak 2ad1cca549 Issue #312 - TypeFilterAttribute (with sample).
Implmentation for understanding and consuming ITypeFilter was already
there.
2014-04-29 14:18:39 -07:00
Ryan Nowak fe6f023948 Auto-update to project file 2014-04-29 14:17:11 -07:00
Yishai Galatzer bcd0974823 Make the controller available to filters + Sample
GitHub WebFX #300
2014-04-29 10:33:21 -07:00
Yishai Galatzer 297bb5d36d Layout compilation error not showing in browser - GitHub WebFX #286
An exception thrown in a layout (or for that matter anything that is a rendering time exception)
is not bubbling to the end user.

The reason is that the StreamWrite is flushing because it's in a dispose pattern.
The solution is to wrap the stream and prevent writes/flushes if an exception has been thrown.

At the same time we stop writing BOM out to html files by default.

Also specified charset explicitly - so there is matches the encoding of the page.
2014-04-29 10:26:22 -07:00
dougbu f7704ba68f Implement `Editor*()` HTML helpers
- copy over legacy `Editor*()` extensions and default editor templates
- get working in the new world
 - usual `var`, `String` -> `string`, `internal` -> `public`, namespaces, ...
 - longest overloads into `IHtmlHelper[<TModel>]` and implementation classes
 - clean up `ViewContext.ViewData` -> `ViewData`, trailing whitespace, long lines
 - remove `MultilineTextTemplate()` since `TextArea()` doesn't exist yet
 - remove `ColorInputTemplate()` since `Color` type doesn't exist
 - use `html.Label()`, not `LabelExtensions.LabelHelper()`: equivalent helper
   is protected.  only downside is potential `ModelMetadata` re-discovery.
 - rename `HtmlInputTemplateHelper()` -> `GenerateTextBox()`
- copy over `Html5DateRenderingMode` and `html.Html5DateRenderingMode` property
 - and get them working in new world
- hook the default editor templates up
- use `Editor()`, `EditorFor()`, `EditorForModel()` in MVC sample
 - add an on-disk editor template to MVC sample
2014-04-28 14:53:07 -07:00
Sebastien Ros b3046a0285 AllowAnonymous can override AuthorizeAttribute
#309
2014-04-28 14:04:10 -07:00
Yishai Galatzer 3636440cae Fix bug# 289
The ordering algorithm was ignoring errors that came from user code,
and only respected errors from model properties
2014-04-28 12:51:55 -07:00
David Fowler 8d53d40647 CR feedback 2014-04-28 11:19:36 -07:00
David Fowler cff4a21e08 Make razor roslyn compilation work on mono
- Added a metadata cache (we need this for core clr). Will consider
moving this into the core
- Skip pdb generation on mono
2014-04-28 11:19:36 -07:00
harshgMSFT 926b335101 Fix for Issue #319 2014-04-28 11:18:15 -07:00
dougbu 66ca046135 Reintroduce `IHtmlHelper` and use it everywhere possible
- no more `IHtmlHelper<object>` in `DefaultDisplayTemplates` and also no
  need for `ViewDataDictionary<object>` in a few places
- mostly removals from `IHtmlHelper<TModel>` but did cleanup comments and
  add `[NotNull]` for `DisplayFor()`, `DisplayNameFor()`,
  `DisplayNameForInnerType()`, and `LabelFor()`
- also add `[NotNull]` for `this` and `Expression` parameters in some
  extension methods
2014-04-28 10:57:36 -07:00
sornaks e21688ffb5 #190 Tighten protections around `ModelStateDictionary` additions 2014-04-28 08:46:47 -07:00
Pranav K f740aabb79 Reviving RangeAttributeAdapter, RequiredAttributeAdapter,
StringLengthAttributeAdapter

* Adding remaining DataTypeAttribute adapter rules
2014-04-26 11:39:29 -07:00
Yishai Galatzer a5afd3eb42 ActionResult implements IActionResult, and all our default implementations now use ActionResult
All controller methods return the specific ActionResult type
2014-04-25 15:57:02 -07:00
Pranav K f5ba63ea1e Fixing missing files in kproj
Fixing typo in sample filter
2014-04-25 14:48:14 -07:00
Ryan Nowak 8eecad9d83 Bringing back UrlHelper.IsLocalUrl
This has been compied verbatim from MVC (intentional). The tests have been
modernized a bit as well, but all the cases covered in the original are
there.

This may be moved to HttpAbstractions at some point in the future.
2014-04-25 14:29:00 -07:00
harshgMSFT f26cc51e2e Introducing AntiForgery System :
- Config is cleaned up to not have IAdditionalDataProvider and SuppressIdentityChecks.

- Added a DefaultClaimUidExtractor which looks for NameIdentifier and if not present serializes entire claims.

- Added HtmlHelper.

- AntiForgery now returns an AntiForgeryTokenSet which represents a tuple of cookie and form tokens.
2014-04-24 18:12:11 -07:00
Pranav K d61915149c DictionaryBasedValueProvider results null when value is not found
* Guard against Dictionary returning null values
2014-04-24 18:10:06 -07:00
Sebastien Ros 0fe028a4dd Implementing Authorize attribute
#272
2014-04-24 16:21:43 -07:00
Pranav K 2ba8780ee0 Reviving MinLength and MaxLength attribute adapters 2014-04-24 15:52:05 -07:00
Pranav K b0c7dc9220 Make IModelBinder and IValueProvider methods async 2014-04-24 15:16:27 -07:00
N. Taylor Mullen d46389888d Modify search location for views.
When areas are not provided area locations are not searched for views.  Also
added tests for search locations in RazorViewEngine failures.
2014-04-24 14:03:36 -07:00
Pranav K 3671e8c5b4 Reviving CompareAttributeAdapter and ModelClientValidationEqualToRule 2014-04-22 23:11:24 -07:00
Pranav K cc00d8cff7 Modify TypeConverterModelBinder to use ValueProviderResult.CanConvertFromString to determine if it can convert a
value

* Adding support for extra type conversions
2014-04-22 23:00:58 -07:00
Ryan Nowak 73670fb5d7 CR feedback for filters 2014-04-21 13:34:00 -07:00
dougbu b8731621df Add default `Display*()` templates
- first get old code in correct spot
- then get default templates working in new world
 - usual things: `[NotNull]`, `var`, internal -> public
 - provide a `HtmlHelper.GenerateOption()` static method
 - pass an `ViewDataDictionary<object>` instance to `TemplateRenderer` constructor
 - run default templates synchronously with an IHtmlHelper<object>
 - copy over resources
 - add Microsoft.Data.Entity reference for EntityState type
- use default templates in MVC sample
 - remove most on-disk overrides of the default templates
2014-04-19 19:00:42 -07:00
David Fowler 05a2319d84 Moved BuilderExtensions to Microsoft.AspNet namespace 2014-04-18 00:51:27 -07:00
David Fowler c4f01b8ec9 Removed MVC's custom request scope
We need to figure out a consistent way to throw errors when there isn't
a request scope already setup.
2014-04-17 20:10:18 -07:00
David Fowler b3d851dfe9 Added [NotNull] 2014-04-17 20:01:49 -07:00
David Fowler 73e1386724 Added UseMvc extension method via IBuilder extensions. 2014-04-17 19:55:23 -07:00
dougbu b8eb16d98d Fix #266: Throw when views aren't found at call sites
- note `htmlHelper.Display()` does not throw on failures
2014-04-17 12:05:16 -07:00
Louis DeJardin f19fe0cbef Filters version 2.0
This is functionally much more similar to legacy MVC.

Rather than a pure single pipeline, filter execution takes place in more
stages.
2014-04-17 11:45:58 -07:00
David Fowler 93c9b3419e Made some changes to the MvcApplication class
- Renamed it to MvcRouteHandler
- Removed required IServiceProvider ctor param.
- The HttpContext flows the application services through to MVC. This does
 require a call to app.UseContainer in order for things to work but that should be fine.
 This will be the pattern we use for all frameworks going forward and we'll need to have some
 good error handling around this area when things aren't wired up properly.
2014-04-17 00:02:10 -07:00
David Fowler 44ee632825 Added overload that takes IConfiguration 2014-04-16 23:59:37 -07:00
David Fowler 4fc0b56dfa Added extension method to ServiceCollection to register default services 2014-04-16 23:59:36 -07:00
Ryan Nowak 40e7fcc9ba Turning on warnings as errors 2014-04-16 20:21:07 -07:00
Ryan Nowak 5075679936 Cleaning up more warnings
These are the cases where an interface returns Task, but our
implementation is synchronous. In these cases we prefer to declare the
method as async and suppress, because this keeps the exception semantics
the same as a 'true' async method.
2014-04-16 20:09:01 -07:00
Ryan Nowak c54f6d006b Fix for #57
Removing last use of ActivatorUtilities
2014-04-16 18:36:44 -07:00
Ryan Nowak b8bd6a5886 Fixing a warning
The constant ValidationType was hiding a property on the base class.
2014-04-16 16:50:31 -07:00
harshgMSFT 72732868c6 Adding DisplayName, Label HtmlHelpers. 2014-04-16 11:41:47 -07:00
Pranav K b9b652084a Introducing IClientModelValidator to support client validation
* Adding support for validator adapters in DataAnnotationsModelValidatorProvider
* Adding Regex and DataType validators
2014-04-16 06:27:52 -07:00
Ryan Nowak f34ed467e4 Fix for #246 - ActionLink generating wrong urls
There's an overload that's missing from ActionLink but is present on url
helper, making it very easy to mistakenly pass the wrong data. In the case
of #246, the controller name is treated as the route-values and the
route-values treated as html attributes, leading to the wrong link being
generated.
2014-04-15 15:23:59 -07:00
harshgMSFT 5810215306 Updating the Kproj file to contain the missing reference to NonActionAttribute.cs 2014-04-15 15:14:32 -07:00
sornaks 646b711b11 Adding the missed project files for WebFX:156 - Introducing RedirectToAction and RedirectToRoute 2014-04-15 13:49:57 -07:00
Sornakumar ecd8ddeae4 WebFX 156: Adding support for RedirectToAction and RedirectToRoute 2014-04-15 10:45:57 -07:00
harshgMSFT 1536daa107 Adding NonAction Attribute 2014-04-14 16:18:16 -07:00
dougbu 246bb2e3dd Add `DropDownList()` and `DropDownListFor()` HTML helpers
- copy over legacy MVC's `SelectExtensions`, `SelectListItem` and `SelectListGroup`
 - plus expected `SelectList` and `MultiSelectList`
- fixup select HTML helpers to meet WebFx standards and work in new world
 - usual stuff: `[NotNull]`, `var`, `String` -> `string`, long lines, ...
 - remove `IDictionary<string, object> htmlAttributes` overloads
 - move longest extension method overloads into correct classes / interfaces
 - add `ViewDataEvaluator.Eval()` overload for an `object` container
 - rename lower-level helpers to make purposes more obvious
 - nit: move Raw() methods up from bottom of HtmlHelper.cs
- use `DropDownList[For]()` in MVC sample
2014-04-14 16:05:07 -07:00
dougbu 271c849923 Fix #231; add `ViewBag` to `ViewComponent`
- update MVC sample to demonstrate use and that `ViewBag` is scoped
- nit: add a bit of padding between border and tag cloud words
2014-04-12 14:10:16 -07:00
Pranav K 0f6df5405b Reviving support for IValidatableObject in CoreCLR 2014-04-10 22:09:57 -07:00
dougbu ba08f8e8d8 Cleanup Display, Partial, and Validation extensions
- correct file and class names for some HH extensions
 - three class names were correct but didn't match containing file
 - three class and file names matched but didn't start with HtmlHelper
- clean up trailing whitespace and long lines in changed Extensions.cs files
 - `HtmlHelperPartialAsyncExtensions`, `HtmlHelperRenderPartialAsyncExtensions`
   and `HtmlHelperValidationExtensions` lacked some `[NotNull]` attributes
- merge extension files by concept
 - Display / DisplayFor / DisplayForModel methods all into `HtmlHelperDisplayExtensions`
 - Partial / RenderPartial methods all into `HtmlHelperPartialExtensions`
- use `IHtmlHelper<TModel>` everywhere
2014-04-10 17:12:16 -07:00
Ryan Nowak d2453c5832 Bringing back Razor.Host as an assembly as a TEMPORARY WORKAROUND
The tooling team needs this as separate assembly. This will be removed
again soon.
2014-04-10 15:54:47 -07:00
Wei Wang 86d327366f Fix wrong order of arguments passed to ArgumentException ctor 2014-04-10 13:56:50 -07:00
Ryan Nowak 408d4056b1 Rearrange ViewContext 2014-04-10 11:40:57 -07:00
Ryan Nowak cda73e95a8 Integrate dictionary helper with existing code paths 2014-04-10 11:21:35 -07:00
dougbu f0c6512b61 Catch up with previous `ActionNameAttribute` addition 2014-04-10 09:27:45 -07:00
harshgMSFT 53b76380eb Adding ActionName Attribute 2014-04-09 15:48:30 -07:00
dougbu 1da2d6d9dc Checkin VS auto-update to .kproj file 2014-04-09 14:31:33 -07:00
dougbu 82b071c80e Add CR-requested comment 2014-04-09 14:30:12 -07:00
dougbu f0a97772f5 Add remaining HTML input helpers
- add `CheckBox[For]()`, `Hidden[For]()`, `Password[For]()`, and
  `RadioButton[For]()`
- also make `FormatValue()` visible to users, as it is in legacy MVC
- and spread the boxes out a bit in MyView 😺
2014-04-09 12:52:47 -07:00
David Fowler b1fd5cc689 Made a few more changes since we have new tooling
- Remove runtime interface declarations and use
  Microsoft.Net.Runtime.Interfaces package
- Made tests compile for net45 and made default
  intellisense view net45 for unit tests since Moq
  doesn't work
2014-04-09 12:24:16 -07:00
David Fowler a970fa04ab Updated to use the new tooling 2014-04-09 12:24:16 -07:00
Ryan Nowak 35bfa84274 CR feedback 2014-04-09 11:10:05 -07:00
Ryan Nowak 4e1511ed4d Adding ActionLink 2014-04-09 11:07:15 -07:00
Pranav K c8ede78582 Expanding ValueProviderResult to support more data types
* Reviving tests for ValueProviderResult
2014-04-09 09:33:29 -07:00
Ryan Nowak 527394c492 CR feedback 2014-04-08 16:05:51 -07:00
Ryan Nowak e740633c06 CR feedback 2014-04-08 16:05:49 -07:00
Ryan Nowak ab605ef935 Fix for #215 - nullref trying to generate link in a partial
The fix here is to do some cleanup we've been planning to do for a while,
rather than flowing IUrlHelper and IComponentHelper as part of the
ViewContext, they now are just grabbed from the service provider.

This simplifies the code for invoking a view, and gets us closer to the
desired API surface of ViewContext
2014-04-08 16:05:48 -07:00
Ryan Nowak 749789c486 CR feedback 2014-04-08 15:57:40 -07:00
Ryan Nowak 084c7f80e5 Further rearranging IView/IViewEngine/ViewContext et al 2014-04-08 15:57:39 -07:00
dougbu 4feb8f4f28 Remove reduncant `ArgumentNullOrEmpty` resource from Core project
- came from Rendering but Core already had `ArgumentCannotBeNullOrEmpty`
- moved wording from "argument must not be" to "value cannot be"

Also make similar resources consistent in this repo
- adjust Razor's `ArgumentCannotBeNullOrEmpty` resource to use same wording
  as Core, adding "The"
- update ModelBinding to also have `ArgumentCannotBeNullOrEmpty` and to use
  it consistently with Core and Razor
2014-04-08 12:03:50 -07:00
Sornakumar b25091f6c1 Merge branch 'WebFX156' into dev 2014-04-08 10:52:38 -07:00
sornaks 7c8dd45b8b WebFX 156 - Adding support for Redirect and RedirectPermanent 2014-04-08 10:49:56 -07:00
harshgMSFT 01527cd4df Adding HttpPost, HttpDelete, HttpPut, HttpPatch attributes 2014-04-07 22:31:48 -07:00
Ryan Nowak faa8251b70 Merging Mvc.Rendering and Mvc.Core 2014-04-07 17:32:49 -07:00
harshgMSFT 652e89b343 Adding HttpGetAttribute and AcceptVerbsAttribute.
HttpPost, HttpDelete, HttpPut and HttpPatch would be similar.
Also adding few tests.
2014-04-07 15:10:22 -07:00
Ryan Nowak df16982697 Adding and updating old propertyhelper code for dictionaries 2014-04-07 14:41:24 -07:00
Ryan Nowak ec4b3a29c0 Adding smart link generation
This feature will enforce a contract that link generation has to point to
a real action. Read the comments in code for more details and rationale.
2014-04-07 14:37:52 -07:00
Ryan Nowak 3548a46ca9 CR feedback 2014-04-07 12:49:32 -07:00
Ryan Nowak d2386d7ded CR Feedback 2014-04-07 12:49:30 -07:00
Ryan Nowak 37f4e2efaa Adding more overloads for IUrlHelper
(cherry picked from commit 4ebe6b5e386388914160b07c91142a9e7483134b)
2014-04-07 12:49:29 -07:00
Pranav K 931d18b851 Adding exceptions for RenderSection, DefineSection and RenderBody 2014-04-07 12:25:44 -07:00
dougbu 1cd15fbf60 Add form HTML helpers and `MVCForm`
- copy over from legacy MVC
- fixup namespaces, remove copyright notices, ...
- temporarily remove `RouteBeginForm() overloads
- move main components to `HtmlHelper` and declare in `IHtmlHelper<T>`
- change `UrlHelper` to avoid treating an existing dictionary as an object
- add `HtmlHelper.Createform()` factory
- use in MVC sample; move BeginForm / TextBox samples to a new row
2014-04-07 12:04:28 -07:00
Pranav K 94c028a5df Adding support for RazorView.IsSectionDefined 2014-04-06 17:18:37 -07:00
N. Taylor Mullen c0d06f1fbc Fixed combination of Display Templated Helpers.
Had to make adjustments to allow the project to build (things that were missed by git).  Also made some changes to ensure it builds in CoreCLR.
2014-04-06 16:14:10 -07:00
N. Taylor Mullen 671c7dd59e Addressed code review comments. 2014-04-06 16:01:41 -07:00
N. Taylor Mullen 1f47abd758 Implement DisplayForModel Html Helper.
Essentially add extension methods and call through to infrastructure.
2014-04-06 16:01:10 -07:00
N. Taylor Mullen 4f67dee048 Addressed code review comments 2014-04-06 15:59:51 -07:00
N. Taylor Mullen 52ce83db9e Implement DisplayFor Html Helper.
Essentially add extension methods and call through to infrastructure.
2014-04-06 15:59:32 -07:00
N. Taylor Mullen 2b3687282e Addressed code review comments. 2014-04-06 15:57:32 -07:00
N. Taylor Mullen 8477f47632 Implement Display HTMLHelper.
Essentially add extension methods and call through to infrastructure.
2014-04-06 15:55:11 -07:00
N. Taylor Mullen 5da827b58f Add infrastructure for templated display helpers.
I changed code paths for how we render templates from the old world to better separate code.
2014-04-06 15:53:30 -07:00
Pranav K fc01cf6eea Fixing typo in DefaultAssemblyControllerProvider 2014-04-04 16:29:16 -07:00
Yishai Galatzer 1921387b56 Fix #198 2014-04-03 17:29:37 -07:00
Pranav K 9291cbc50b Adding support for RenderSection
* Adding unit tests for DefineSection \ RenderSection
* Changes per code review feedback
2014-04-03 15:00:06 -07:00
Pranav K df9d5c4875 Adding support for Render Section
Initial draft for DefineSection \ RenderSection. This change is based on
changes to the Razor parser to enable Razor to generate HelperResults for
section instead of void delegates.
2014-04-03 14:26:54 -07:00
Pranav K 75dae948b2 Change IViewEngine.FindView to be synchronous 2014-04-03 14:20:39 -07:00
Pranav K 2e0bed750e Adding support for Url.Content, Href and ~/ in Razor views 2014-04-03 14:12:55 -07:00
Ryan Nowak 49de9d2828 Adding Value Html Helpers 2014-04-03 12:22:03 -07:00
dougbu 42561f14d3 Quick fix for a build warning
- remove a duplicate using of `System.Collections.Generic`
- FYI `k build` command does not detect this problem
- nit: also cleanup long lines and align wrapped parameters
2014-04-03 09:38:14 -07:00
Yishai Galatzer ebd54bfc06 Dispose controllers after they have been utilized by the action invoker 2014-04-03 09:31:23 -07:00
dougbu 0a62a581de Add `TextBox` and `TextBoxFor`
- HtmlHelper service now needs an `IModelMetadataProvider` instance
- make `GetInputTypeString()` private
- use `TextBox()` and `TextBoxFor()` in MVC sample
- throw if `ExpressionMetadataProvider.FromLambdaExpression()` returns `null`
2014-04-02 20:49:48 -07:00
dougbu a1a180d4d0 Fill out Rendering.Expressions II
Copy from:
- some `static` `ModelMetadata` methods -> `ExpressionMetadataProvider`
- `TryGetValueDelegate` -> `TryGetValueDelegate`
- `TypeHelpers.CreateTryGetValueDelegate()`, related bits -> `TryGetValueProvider`
- `ViewDataDictionary.ViewDataEvaluator` inner class -> `ViewDataEvaluator`
- `ViewDataInfo` -> `ViewDataInfo`
- `ViewDataDictionary.Eval()`, related bits -> add to `ViewDataDictionary`

Change to fit in new world:
- usual stuff: `var`, `[NotNull]`, String -> string, namespaces, etc.
- PropertyDescriptor -> PropertyInfo
- update Reflection use
- no `IModelMetadata.Container` property
- improve a couple of variable and parameter names
- make `ViewDataInfo` immutable
- make `ViewDataDictionary.FormatValueInternal` `public` and -> `FormatValue`
- remove `[SuppressMessage]` attributes
2014-04-02 20:02:36 -07:00
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
Ryan Nowak 1b4754454b Relayering MVC Dependencies Part 1/N
Merging Mvc.Razor.Host into Mvc.Razor
2014-04-02 18:28:34 -07:00
dougbu 7a97b13c8c Cleanup pass in Rendering (and Common)
- correct `ArgumentNullOrEmpty` and pass parameter name to
  `ArgumentException` constructor
- remove `[SuppressMessage]` attributes
- `AnonymousObjectToHtmlAttributes` should return an `IDictionary`
- `var`
- remove straggling copyright notices
- wrap long lines (did not reword any comments)
- align a few parameters
2014-04-02 14:59:35 -07:00
N. Taylor Mullen dad87c5239 Add ValidationSummary helper.
This enables Html.ValidationSummary.  This is in reference to WEBFX-97.
2014-04-02 14:58:08 -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
dougbu fbbc59b392 Add `Name()`, `NameFor()`, and `NameForModel()` helper methods
- `Name()` is a `virtual` instance method to allow useful derivation
- `NameFor()` is an instance method to avoid adding `GetExpressionName()`
  to the public surface; either method could be `virtual`
- `NameForModel()` is an extension method because it's not usefully overridden
- use `Name*()` in sample
2014-03-31 16:07:56 -07:00
dougbu aaa30591a8 Get things working in our world
- usual stuff, especially use of `var` and `[NotNull]`
- remove references to `ExpressionFingerprintChain` and so on to minimize
  classes we bring over now (and remove one cache)
- copy over missing resource
- rework checks in `IsSingleArgumentIndexer()`
2014-03-31 15:31:40 -07:00
dougbu f108315038 Copy over two expression-support classes from legacy MVC 2014-03-31 15:31:39 -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
Pranav K c72c80c101 Add the ability to correctly determine if a particular field has been validated.
There are several portions of model validation that attempt to avoid
revalidating if a field has been validated. However the behavior of
ModelStateDictionary makes it difficult to distinguish between an
unvalidated field and a field without validation errors. This change
resolves this issue by letting the caller distinguish between the two
cases.
2014-03-31 12:40:38 -07:00
N. Taylor Mullen 2de5d57348 Add PartialAsync and RenderPartialAsync.
This enables Html.PartialAsync and Html.RenderPartialAsync.  It also includes a sample to showcase the features.  This is in reference to WEBFX-95.
2014-03-31 12:19:10 -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
dougbu 2b70156cf4 Inject `HtmlHelper` property into `RazorView<T>`
- add `IHtmlHelper<T>` and `ICanHasViewContext`
- adjust `HtmlHelper` and `HtmlHelper<T>` to match
- throw if `ViewContext` accessed prior to `Contextualize` call
- XML comments (from old world) all around

Note
- no current need for an `HtmlHelper` copy constructor or `Clone()` method
- expect recursion code to get another injected `IHtmlHelper<T>` and then
  "contextualize" that instance with a new `ViewContext`
2014-03-28 17:29:00 -07:00
dougbu 94db3c392a Add `FormContext` to `ViewContext`
- start with `FormContext` and classes it needs from legacy world
- FYI `ModelClientValidationRule` came from Web Pages; the rest from MVC

Cleanup and make files compile in new world
- remove `FormContext.GetJsonValidationMetadata` method; will file an
  issue to revive this using Json.NET
- don't store `FormContext` in the `HttpContext`, no longer have child
  actions
- do `null` checks in setters, not getters (minor perf improvement)
- fix namespaces and usings
- wrap long lines; use `[NotNull]`; no copyright notice
- use explicit comparers for dictionaries
- add XML comment for odd `ModelClientValidationRule.ValidationType`
  property
- Collection -> List
2014-03-28 17:01:23 -07:00
Yishai Galatzer 54c73e4227 Cleanup + TODO 2014-03-28 16:55:56 -07:00
Pranav K f1efbde29d Revive HelperResult to allow using @helper in views 2014-03-28 11:08:15 -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