From 8f72cb49ffa1f560f3396b3441bd71ffb6f28883 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 14 Aug 2011 18:31:37 +0100 Subject: [PATCH] Support creating partial views from ASP.NET MVC Add View dialog. --- .../CodeTemplates/AddView/AspxCSharp/Empty.tt | 6 +- .../CodeTemplates/AddView/CSHTML/Empty.tt | 4 ++ .../AddView/AspxVisualBasic/Empty.tt | 6 +- .../CodeTemplates/AddView/VBHTML/Empty.tt | 4 ++ .../Project/Src/AddMvcViewToProjectView.xaml | 13 ++++- .../Src/AddMvcViewToProjectViewModel.cs | 5 ++ .../Project/Src/IMvcTextTemplateHost.cs | 8 ++- .../Src/MvcTextTemplateFileNameExtension.cs | 13 ++++- .../Project/Src/MvcTextTemplateHost.cs | 1 + .../Project/Src/MvcViewFileGenerator.cs | 1 + .../AspNet.Mvc/Project/Src/MvcViewFileName.cs | 5 +- .../Test/Helpers/FakeMvcTextTemplateHost.cs | 1 + .../Src/AddMvcViewToProjectViewModelTests.cs | 26 +++++++++ .../Test/Src/MvcViewFileGeneratorTests.cs | 56 ++++++++++++++++++- .../Test/Src/MvcViewFileNameTests.cs | 16 ++++++ 15 files changed, 156 insertions(+), 9 deletions(-) diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt index 786582fe47..aad5bee367 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt @@ -1,8 +1,11 @@ <#@ template language="C#" HostSpecific="true" #> -<#@ output extension=".aspx" #> <# MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)Host; #> +<# if (mvcHost.IsPartialView) { #> +<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> + +<# } else { #> <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> @@ -16,3 +19,4 @@ +<# } #> \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Empty.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Empty.tt index 12e49dffae..a426ff0af5 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Empty.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Empty.tt @@ -3,6 +3,9 @@ <# MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)Host; #> +<# if (mvcHost.IsPartialView) { #> + +<# } else { #> @@ -15,3 +18,4 @@ +<# } #> \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt index d74dcb06ed..1fcfcf7aff 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt @@ -1,8 +1,11 @@ <#@ template language="VB" HostSpecific="true" #> -<#@ output extension=".aspx" #> <# Dim mvcHost As MvcTextTemplateHost = DirectCast(Host, MvcTextTemplateHost) #> +<# If mvcHost.IsPartialView Then #> +<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl" %> + +<# Else #> <%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage" %> @@ -16,3 +19,4 @@ +<# End If #> \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Empty.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Empty.tt index 4d6709014f..958f902985 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Empty.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Empty.tt @@ -3,6 +3,9 @@ <# Dim mvcHost As MvcTextTemplateHost = DirectCast(Host, MvcTextTemplateHost) #> +<# If mvcHost.IsPartialView Then #> + +<# Else #> @@ -15,3 +18,4 @@ +<# End If #> \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml index f149de2abb..08be92216a 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml @@ -22,6 +22,7 @@ + @@ -54,12 +55,22 @@ ItemTemplate="{StaticResource ViewEngineTemplate}" SelectedItem="{Binding Path=SelectedViewEngine}"/> + + + + Grid.Row="4">