Castle.MonoRail.Framework.Controller.HasTemplate C# (CSharp) Method

HasTemplate() public method

Returns true if the specified template exists.
public HasTemplate ( string templateName ) : bool
templateName string
return bool
		public bool HasTemplate(string templateName)
		{
			return viewEngineManager.HasTemplate(templateName);
		}

Usage Example

		/// <summary>
		/// Executes the basic flow which is
		/// <list type="number">
		/// <item><description>Resolve the <see cref="ActiveRecordModel"/></description></item>
		/// <item><description>Resolve the layout (if not is associated with the controller, defaults to "scaffold")</description></item>
		/// <item><description>Invokes <see cref="PerformActionProcess"/> which should perform the correct process for this action</description></item>
		/// <item><description>Resolves the template name that the developer might provide by using <see cref="ComputeTemplateName"/></description></item>
		/// <item><description>If the template exists, renders it. Otherwise invokes <see cref="RenderStandardHtml"/></description></item>
		/// </list>
		/// </summary>
		/// <param name="controller"></param>
		public void Execute(Controller controller)
		{
			// We make sure the code is always surrounded by a SessionScope.
			// If none is found, we create one
			
			SessionScope scope = null;
			
			if (SessionScope.Current == null)
			{
				scope = new SessionScope(FlushAction.Never);
			}

			try
			{
				model = GetARModel();

				PerformActionProcess(controller);

				String templateName = ComputeTemplateName(controller);

				if (controller.HasTemplate(templateName))
				{
					controller.RenderSharedView(templateName);
				}
				else
				{
					RenderStandardHtml(controller);
				}
			}
			finally
			{
				if (scope != null)
				{
					scope.Dispose();
				}
			}
		}