public virtual void RenderHtml()

in src/React.Core/ReactComponent.cs [143:226]


		public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action<Exception, string, string> exceptionHandler = null, IRenderFunctions renderFunctions = null)
		{
			if (!_configuration.UseServerSideRendering)
			{
				renderContainerOnly = true;
			}

			if (!renderContainerOnly)
			{
				EnsureComponentExists();
			}

			var html = string.Empty;
			if (!renderContainerOnly)
			{
				var stringWriter = _sharedStringWriter;
				if (stringWriter != null)
				{
					stringWriter.GetStringBuilder().Clear();
				}
				else
				{
					_sharedStringWriter = stringWriter = new StringWriter(new StringBuilder(_serializedProps.Length + 128));
				}

				try
				{
					stringWriter.Write(renderServerOnly ? "ReactDOMServer.renderToStaticMarkup(" : "ReactDOMServer.renderToString(");
					if (renderFunctions != null)
					{
						stringWriter.Write(renderFunctions.WrapComponent(GetStringFromWriter(componentInitWriter => WriteComponentInitialiser(componentInitWriter))));
					}
					else
					{
						WriteComponentInitialiser(stringWriter);
					}
					stringWriter.Write(')');

					if (renderFunctions != null)
					{
						renderFunctions.PreRender(x => _environment.Execute<string>(x));
						html = _environment.Execute<string>(renderFunctions.TransformRenderedHtml(stringWriter.ToString()));
						renderFunctions.PostRender(x => _environment.Execute<string>(x));
					}
					else
					{
						html = _environment.Execute<string>(stringWriter.ToString());
					}

					if (renderServerOnly)
					{
						writer.Write(html);
						return;
					}
				}
				catch (JsException ex)
				{
					if (exceptionHandler == null)
					{
						exceptionHandler = _configuration.ExceptionHandler;
					}

					exceptionHandler(ex, ComponentName, ContainerId);
				}
			}

			writer.Write('<');
			writer.Write(ContainerTag);
			writer.Write(" id=\"");
			writer.Write(ContainerId);
			writer.Write('"');
			if (!string.IsNullOrEmpty(ContainerClass))
			{
				writer.Write(" class=\"");
				writer.Write(ContainerClass);
				writer.Write('"');
			}

			writer.Write('>');
			writer.Write(html);
			writer.Write("</");
			writer.Write(ContainerTag);
			writer.Write('>');
		}