CR Feedback

This commit is contained in:
Yishai Galatzer 2014-03-18 19:47:21 -07:00
parent 7d9a6297f9
commit 227121b3f9
3 changed files with 24 additions and 28 deletions

View File

@ -17,40 +17,37 @@ namespace Microsoft.AspNet.Mvc
var removalConstraints = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
// Iterate all the Reflected Action Descriptor providers and add area or other route constraints
if (context.Results != null)
foreach (var actionDescriptor in context.Results.OfType<ReflectedActionDescriptor>())
{
foreach (var actionDescriptor in context.Results.OfType<ReflectedActionDescriptor>())
var routeConstraints = actionDescriptor.
ControllerDescriptor.
ControllerTypeInfo.
GetCustomAttributes<RouteConstraintAttribute>().
ToArray();
foreach (var routeConstraint in routeConstraints)
{
var routeConstraints = actionDescriptor.
ControllerDescriptor.
ControllerTypeInfo.
GetCustomAttributes<RouteConstraintAttribute>().
ToArray();
foreach (var routeConstraint in routeConstraints)
if (routeConstraint.BlockNonAttributedActions)
{
if (routeConstraint.BlockNonAttributedActions)
{
removalConstraints.Add(routeConstraint.RouteKey);
}
removalConstraints.Add(routeConstraint.RouteKey);
}
// Skip on duplicates
if (!ContainsKey(actionDescriptor, routeConstraint.RouteKey))
{
actionDescriptor.RouteConstraints.Add(new RouteDataActionConstraint(
routeConstraint.RouteKey, routeConstraint.RouteValue));
}
// Skip duplicates
if (!HasConstraint(actionDescriptor, routeConstraint.RouteKey))
{
actionDescriptor.RouteConstraints.Add(new RouteDataActionConstraint(
routeConstraint.RouteKey, routeConstraint.RouteValue));
}
}
}
foreach (var actionDescriptor in context.Results.OfType<ReflectedActionDescriptor>())
foreach (var actionDescriptor in context.Results.OfType<ReflectedActionDescriptor>())
{
foreach (var key in removalConstraints)
{
foreach (var key in removalConstraints)
if (!HasConstraint(actionDescriptor, key))
{
if (!ContainsKey(actionDescriptor, key))
{
actionDescriptor.RouteConstraints.Add(new RouteDataActionConstraint(key, RouteKeyHandling.DenyKey));
}
actionDescriptor.RouteConstraints.Add(new RouteDataActionConstraint(key, RouteKeyHandling.DenyKey));
}
}
}
@ -58,7 +55,7 @@ namespace Microsoft.AspNet.Mvc
callNext();
}
private bool ContainsKey(ActionDescriptor actionDescript, string routeKey)
private bool HasConstraint(ActionDescriptor actionDescript, string routeKey)
{
return actionDescript.RouteConstraints.Any(rc => string.Equals(rc.RouteKey, routeKey, StringComparison.OrdinalIgnoreCase));
}

View File

@ -4,7 +4,6 @@ using System.Reflection;
using Microsoft.AspNet.Abstractions;
using Microsoft.AspNet.DependencyInjection;
using Microsoft.AspNet.Mvc.ModelBinding;
using Microsoft.AspNet.Routing;
using Microsoft.AspNet.Mvc.Rendering;
namespace Microsoft.AspNet.Mvc

View File

@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Mvc.Razor
var searchedLocations = new List<string>(_viewLocationFormats.Length);
for (int i = 0; i < _viewLocationFormats.Length; i++)
{
string path = String.Format(CultureInfo.InvariantCulture, _viewLocationFormats[i], viewName, controllerName, areaName);
var path = String.Format(CultureInfo.InvariantCulture, _viewLocationFormats[i], viewName, controllerName, areaName);
IView view = await _virtualPathFactory.CreateInstance(path);
if (view != null)
{