From 12985c19eeccac3deff7f57a09628555abaf0635 Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Mon, 10 Mar 2014 17:33:46 -0700 Subject: [PATCH] CR feedback --- samples/MvcSample/Startup.cs | 1 - .../ActionResults/ViewResult.cs | 7 +++++-- src/Microsoft.AspNet.Mvc.Core/Controller.cs | 1 - src/Microsoft.AspNet.Mvc.Core/DefaultRenderUrl.cs | 1 - src/Microsoft.AspNet.Mvc.Razor/RazorView.cs | 9 ++++++--- src/Microsoft.AspNet.Mvc.Razor/RazorViewOfT.cs | 2 -- src/Microsoft.AspNet.Mvc.Rendering/IRenderUrl.cs | 2 -- .../RenderUrlExtensions.cs | 8 ++++---- src/Microsoft.AspNet.Mvc.Rendering/View/ViewContext.cs | 2 ++ 9 files changed, 17 insertions(+), 16 deletions(-) diff --git a/samples/MvcSample/Startup.cs b/samples/MvcSample/Startup.cs index 1b18767b33..780d0e89ed 100644 --- a/samples/MvcSample/Startup.cs +++ b/samples/MvcSample/Startup.cs @@ -49,7 +49,6 @@ namespace MvcSample new { controller = "Home" }); builder.UseRouter(routes); - } } } diff --git a/src/Microsoft.AspNet.Mvc.Core/ActionResults/ViewResult.cs b/src/Microsoft.AspNet.Mvc.Core/ActionResults/ViewResult.cs index c333ce7771..3efc81d130 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ActionResults/ViewResult.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ActionResults/ViewResult.cs @@ -35,7 +35,10 @@ namespace Microsoft.AspNet.Mvc context.HttpContext.Response.ContentType = "text/html"; using (var writer = new StreamWriter(context.HttpContext.Response.Body, Encoding.UTF8, 1024, leaveOpen: true)) { - var viewContext = new ViewContext(context.HttpContext, ViewData, _serviceProvider); + var viewContext = new ViewContext(context.HttpContext, ViewData, _serviceProvider) + { + Url = new DefaultRenderUrl(context.HttpContext, context.Router, context.RouteValues), + }; await view.RenderAsync(viewContext, writer); } } @@ -48,7 +51,7 @@ namespace Microsoft.AspNet.Mvc { string locationsText = String.Join(Environment.NewLine, result.SearchedLocations); const string message = @"The view '{0}' was not found. The following locations were searched:{1}."; - throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, message, viewName, locationsText)); + throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, message, viewName, locationsText)); } return result.View; diff --git a/src/Microsoft.AspNet.Mvc.Core/Controller.cs b/src/Microsoft.AspNet.Mvc.Core/Controller.cs index 0892b23fa6..cb868147e1 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Controller.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Controller.cs @@ -1,5 +1,4 @@ using Microsoft.AspNet.Abstractions; -using Microsoft.AspNet.Mvc.ModelBinding; namespace Microsoft.AspNet.Mvc { diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultRenderUrl.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultRenderUrl.cs index bcd2289770..75ca6ee4d5 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultRenderUrl.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultRenderUrl.cs @@ -37,7 +37,6 @@ namespace Microsoft.AspNet.Mvc public virtual string Route(object values) { return RouteCore(new RouteValueDictionary(values)); - } protected virtual string RouteCore(IDictionary values) diff --git a/src/Microsoft.AspNet.Mvc.Razor/RazorView.cs b/src/Microsoft.AspNet.Mvc.Razor/RazorView.cs index 7d82f18247..bdbf8d60c7 100644 --- a/src/Microsoft.AspNet.Mvc.Razor/RazorView.cs +++ b/src/Microsoft.AspNet.Mvc.Razor/RazorView.cs @@ -10,19 +10,22 @@ namespace Microsoft.AspNet.Mvc.Razor { public abstract class RazorView : IView { - public HttpContext Context { get; set; } + public ViewContext Context { get; set; } public string Layout { get; set; } protected TextWriter Output { get; set; } - public IRenderUrl Url { get; set; } + public IRenderUrl Url + { + get { return Context == null ? null : Context.Url; } + } private string BodyContent { get; set; } public virtual async Task RenderAsync(ViewContext context, TextWriter writer) { - Url = context.RenderUrl; + Context = context; var contentBuilder = new StringBuilder(1024); using (var bodyWriter = new StringWriter(contentBuilder)) diff --git a/src/Microsoft.AspNet.Mvc.Razor/RazorViewOfT.cs b/src/Microsoft.AspNet.Mvc.Razor/RazorViewOfT.cs index 23560971e5..528ce75914 100644 --- a/src/Microsoft.AspNet.Mvc.Razor/RazorViewOfT.cs +++ b/src/Microsoft.AspNet.Mvc.Razor/RazorViewOfT.cs @@ -16,8 +16,6 @@ namespace Microsoft.AspNet.Mvc.Razor public HtmlHelper Html { get; set; } - public IRenderUrl RenderUrl { get; set; } - public override Task RenderAsync(ViewContext context, TextWriter writer) { var viewData = context.ViewData as ViewData; diff --git a/src/Microsoft.AspNet.Mvc.Rendering/IRenderUrl.cs b/src/Microsoft.AspNet.Mvc.Rendering/IRenderUrl.cs index 1783491fa8..fb11416c72 100644 --- a/src/Microsoft.AspNet.Mvc.Rendering/IRenderUrl.cs +++ b/src/Microsoft.AspNet.Mvc.Rendering/IRenderUrl.cs @@ -1,6 +1,4 @@  -using System.Collections.Generic; - namespace Microsoft.AspNet.Mvc { public interface IRenderUrl diff --git a/src/Microsoft.AspNet.Mvc.Rendering/RenderUrlExtensions.cs b/src/Microsoft.AspNet.Mvc.Rendering/RenderUrlExtensions.cs index 3c2f7f5185..721ecf514c 100644 --- a/src/Microsoft.AspNet.Mvc.Rendering/RenderUrlExtensions.cs +++ b/src/Microsoft.AspNet.Mvc.Rendering/RenderUrlExtensions.cs @@ -3,22 +3,22 @@ namespace Microsoft.AspNet.Mvc { public static class RenderUrlExtension { - public static string Action(this IRenderUrl generator) + public static string Action([NotNull] this IRenderUrl generator) { return generator.Action(null, null, null); } - public static string Action(this IRenderUrl generator, string action) + public static string Action([NotNull] this IRenderUrl generator, string action) { return generator.Action(action, null, null); } - public static string Action(this IRenderUrl generator, string action, object values) + public static string Action([NotNull] this IRenderUrl generator, string action, object values) { return generator.Action(action, null, values); } - public static string Action(this IRenderUrl generator, string action, string controller) + public static string Action([NotNull] this IRenderUrl generator, string action, string controller) { return generator.Action(action, controller, null); } diff --git a/src/Microsoft.AspNet.Mvc.Rendering/View/ViewContext.cs b/src/Microsoft.AspNet.Mvc.Rendering/View/ViewContext.cs index 370d42f1f9..fcef19189b 100644 --- a/src/Microsoft.AspNet.Mvc.Rendering/View/ViewContext.cs +++ b/src/Microsoft.AspNet.Mvc.Rendering/View/ViewContext.cs @@ -16,6 +16,8 @@ namespace Microsoft.AspNet.Mvc public IServiceProvider ServiceProvider { get; private set; } + public IRenderUrl Url { get; set; } + public ViewData ViewData { get; private set; } } }