Change `IViewComponentHelper` methods to return `IHtmlContent`

- #3152
This commit is contained in:
Doug Bunting 2015-11-16 20:39:48 -08:00
parent 85080ae621
commit b3c68defe8
3 changed files with 24 additions and 24 deletions

View File

@ -3,23 +3,23 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Mvc.Rendering; using Microsoft.AspNet.Html.Abstractions;
namespace Microsoft.AspNet.Mvc namespace Microsoft.AspNet.Mvc
{ {
public interface IViewComponentHelper public interface IViewComponentHelper
{ {
HtmlString Invoke(string name, params object[] args); IHtmlContent Invoke(string name, params object[] args);
HtmlString Invoke(Type componentType, params object[] args); IHtmlContent Invoke(Type componentType, params object[] args);
void RenderInvoke(string name, params object[] args); void RenderInvoke(string name, params object[] args);
void RenderInvoke(Type componentType, params object[] args); void RenderInvoke(Type componentType, params object[] args);
Task<HtmlString> InvokeAsync(string name, params object[] args); Task<IHtmlContent> InvokeAsync(string name, params object[] args);
Task<HtmlString> InvokeAsync(Type componentType, params object[] args); Task<IHtmlContent> InvokeAsync(Type componentType, params object[] args);
Task RenderInvokeAsync(string name, params object[] args); Task RenderInvokeAsync(string name, params object[] args);

View File

@ -3,13 +3,13 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Html.Abstractions;
namespace Microsoft.AspNet.Mvc.Rendering namespace Microsoft.AspNet.Mvc.Rendering
{ {
public static class ViewComponentHelperExtensions public static class ViewComponentHelperExtensions
{ {
public static HtmlString Invoke<TComponent>(this IViewComponentHelper helper, public static IHtmlContent Invoke<TComponent>(this IViewComponentHelper helper, params object[] args)
params object[] args)
{ {
if (helper == null) if (helper == null)
{ {
@ -19,8 +19,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
return helper.Invoke(typeof(TComponent), args); return helper.Invoke(typeof(TComponent), args);
} }
public static void RenderInvoke<TComponent>(this IViewComponentHelper helper, public static void RenderInvoke<TComponent>(this IViewComponentHelper helper, params object[] args)
params object[] args)
{ {
if (helper == null) if (helper == null)
{ {
@ -30,7 +29,8 @@ namespace Microsoft.AspNet.Mvc.Rendering
helper.RenderInvoke(typeof(TComponent), args); helper.RenderInvoke(typeof(TComponent), args);
} }
public static Task<HtmlString> InvokeAsync<TComponent>(this IViewComponentHelper helper, public static Task<IHtmlContent> InvokeAsync<TComponent>(
this IViewComponentHelper helper,
params object[] args) params object[] args)
{ {
if (helper == null) if (helper == null)
@ -41,8 +41,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
return helper.InvokeAsync(typeof(TComponent), args); return helper.InvokeAsync(typeof(TComponent), args);
} }
public static Task RenderInvokeAsync<TComponent>(this IViewComponentHelper helper, public static Task RenderInvokeAsync<TComponent>(this IViewComponentHelper helper, params object[] args)
params object[] args)
{ {
if (helper == null) if (helper == null)
{ {

View File

@ -4,6 +4,7 @@
using System; using System;
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Html.Abstractions;
using Microsoft.AspNet.Mvc.Rendering; using Microsoft.AspNet.Mvc.Rendering;
using Microsoft.AspNet.Mvc.ViewFeatures; using Microsoft.AspNet.Mvc.ViewFeatures;
using Microsoft.AspNet.Mvc.ViewFeatures.Internal; using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
@ -52,7 +53,7 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
_viewContext = viewContext; _viewContext = viewContext;
} }
public HtmlString Invoke(string name, params object[] arguments) public IHtmlContent Invoke(string name, params object[] arguments)
{ {
if (name == null) if (name == null)
{ {
@ -61,14 +62,14 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
var descriptor = SelectComponent(name); var descriptor = SelectComponent(name);
using (var writer = new StringWriter()) using (var writer = new StringCollectionTextWriter(_viewContext.Writer.Encoding))
{ {
InvokeCore(writer, descriptor, arguments); InvokeCore(writer, descriptor, arguments);
return new HtmlString(writer.ToString()); return writer.Content;
} }
} }
public HtmlString Invoke(Type componentType, params object[] arguments) public IHtmlContent Invoke(Type componentType, params object[] arguments)
{ {
if (componentType == null) if (componentType == null)
{ {
@ -77,10 +78,10 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
var descriptor = SelectComponent(componentType); var descriptor = SelectComponent(componentType);
using (var writer = new StringWriter()) using (var writer = new StringCollectionTextWriter(_viewContext.Writer.Encoding))
{ {
InvokeCore(writer, descriptor, arguments); InvokeCore(writer, descriptor, arguments);
return new HtmlString(writer.ToString()); return writer.Content;
} }
} }
@ -106,7 +107,7 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
InvokeCore(_viewContext.Writer, descriptor, arguments); InvokeCore(_viewContext.Writer, descriptor, arguments);
} }
public async Task<HtmlString> InvokeAsync(string name, params object[] arguments) public async Task<IHtmlContent> InvokeAsync(string name, params object[] arguments)
{ {
if (name == null) if (name == null)
{ {
@ -115,14 +116,14 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
var descriptor = SelectComponent(name); var descriptor = SelectComponent(name);
using (var writer = new StringWriter()) using (var writer = new StringCollectionTextWriter(_viewContext.Writer.Encoding))
{ {
await InvokeCoreAsync(writer, descriptor, arguments); await InvokeCoreAsync(writer, descriptor, arguments);
return new HtmlString(writer.ToString()); return writer.Content;
} }
} }
public async Task<HtmlString> InvokeAsync(Type componentType, params object[] arguments) public async Task<IHtmlContent> InvokeAsync(Type componentType, params object[] arguments)
{ {
if (componentType == null) if (componentType == null)
{ {
@ -131,10 +132,10 @@ namespace Microsoft.AspNet.Mvc.ViewComponents
var descriptor = SelectComponent(componentType); var descriptor = SelectComponent(componentType);
using (var writer = new StringWriter()) using (var writer = new StringCollectionTextWriter(_viewContext.Writer.Encoding))
{ {
await InvokeCoreAsync(writer, descriptor, arguments); await InvokeCoreAsync(writer, descriptor, arguments);
return new HtmlString(writer.ToString()); return writer.Content;
} }
} }