Browse Source

Generate code for model properties in ASP.NET MVC Delete view T4 templates.

pull/18/head
Matt Ward 14 years ago
parent
commit
6ebfe59c20
  1. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Create.cs
  2. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Create.tt
  3. 135
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Delete.cs
  4. 30
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Delete.tt
  5. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Create.cs
  6. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Create.tt
  7. 117
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Delete.cs
  8. 30
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Delete.tt
  9. 27
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Delete.tt
  10. 27
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Delete.tt
  11. 59
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/AspxCSharpDeleteViewTemplateTests.cs
  12. 59
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/RazorCSharpDeleteViewTemplateTests.cs

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Create.cs

@ -223,7 +223,7 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -223,7 +223,7 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line hidden
#line 37 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Create.tt"
foreach (var modelProperty in GetModelProperties()) {
foreach (ModelProperty modelProperty in GetModelProperties()) {
#line default
#line hidden

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Create.tt

@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# foreach (var modelProperty in GetModelProperties()) { #>
<# foreach (ModelProperty modelProperty in GetModelProperties()) { #>
<div class="editor-label">
<%: Html.LabelFor(model => model.<#= modelProperty.Name #>) %>
</div>

135
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Delete.cs

@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
using ICSharpCode.AspNet.Mvc;
using System.Collections.Generic;
using System.Reflection;
using System;
@ -18,12 +20,17 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -18,12 +20,17 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
private global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost hostValue;
#line 53 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 64 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
MvcTextTemplateHost MvcHost {
get { return (MvcTextTemplateHost)Host; }
}
public class ModelProperty
{
public string Name { get; set; }
}
public string GetViewPageType()
{
string viewDataTypeName = MvcHost.ViewDataTypeName;
@ -32,6 +39,20 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -32,6 +39,20 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
}
return String.Empty;
}
public IEnumerable<ModelProperty> GetModelProperties()
{
var properties = new List<ModelProperty>();
foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) {
properties.Add(CreateModelProperty(propertyInfo));
}
return properties;
}
ModelProperty CreateModelProperty(PropertyInfo propertyInfo)
{
return new ModelProperty() { Name = propertyInfo.Name };
}
#line default
#line hidden
@ -49,92 +70,92 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -49,92 +70,92 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
public virtual string TransformText() {
this.GenerationEnvironment = null;
#line 3 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 5 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
if (MvcHost.IsPartialView) {
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl");
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( GetViewPageType() ));
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\" %>\r\n\r\n");
#line default
#line hidden
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 8 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
} else if (MvcHost.IsContentPage) {
#line default
#line hidden
#line 7 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 9 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("<%@ Page Language=\"C#\" MasterPageFile=\"");
#line default
#line hidden
#line 7 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 9 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.MasterPageFile ));
#line default
#line hidden
#line 7 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 9 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\" Inherits=\"System.Web.Mvc.ViewPage");
#line default
#line hidden
#line 7 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 9 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( GetViewPageType() ));
#line default
#line hidden
#line 7 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 9 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\" %>\r\n\r\n<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"Title\" runat=\"server\">\r\n" +
"");
#line default
#line hidden
#line 10 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 12 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
#line default
#line hidden
#line 10 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 12 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\r\n</asp:Content>\r\n\r\n<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"");
#line default
#line hidden
#line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.PrimaryContentPlaceHolderID ));
#line default
#line hidden
#line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\" runat=\"server\">\r\n");
#line default
#line hidden
#line 14 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 16 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
PushIndent("\t");
} else {
@ -143,37 +164,37 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -143,37 +164,37 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line default
#line hidden
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 20 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage");
#line default
#line hidden
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 20 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( GetViewPageType() ));
#line default
#line hidden
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 20 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\" %>\r\n\r\n<!DOCTYPE html>\r\n<html>\r\n\t<head runat=\"server\">\r\n\t\t<title>");
#line default
#line hidden
#line 23 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 25 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
#line default
#line hidden
#line 23 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 25 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("</title>\r\n\t</head>\r\n\t<body>\r\n");
#line default
#line hidden
#line 26 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 28 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
PushIndent("\t\t");
}
@ -182,27 +203,75 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -182,27 +203,75 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line default
#line hidden
#line 30 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 32 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("<fieldset>\r\n\t<legend>");
#line default
#line hidden
#line 31 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 33 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewDataType.Name ));
#line default
#line hidden
#line 31 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("</legend>\r\n</fieldset>\r\n<% using (Html.BeginForm()) { %>\r\n\t<p>\r\n\t\t<input type=\"su" +
"bmit\" value=\"Delete\"/> |\r\n\t\t<%: Html.ActionLink(\"Back\", \"Index\") %>\r\n\t</p>\r\n<% }" +
" %>\r\n");
#line 33 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("</legend>\r\n");
#line default
#line hidden
#line 34 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
foreach (ModelProperty modelProperty in GetModelProperties()) {
#line default
#line hidden
#line 35 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\t\r\n\t<div class=\"display-label\">\r\n\t\t<%: Html.LabelFor(model => model.");
#line default
#line hidden
#line 39 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 37 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name));
#line default
#line hidden
#line 37 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(") %>\r\n\t</div>\r\n\t<div class=\"display-field\">\r\n\t\t<%: Html.DisplayFor(model => model" +
".");
#line default
#line hidden
#line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name));
#line default
#line hidden
#line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write(") %>\r\n\t</div>\r\n");
#line default
#line hidden
#line 42 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
}
#line default
#line hidden
#line 43 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("</fieldset>\r\n<% using (Html.BeginForm()) { %>\r\n\t<p>\r\n\t\t<input type=\"submit\" value" +
"=\"Delete\"/> |\r\n\t\t<%: Html.ActionLink(\"Back\", \"Index\") %>\r\n\t</p>\r\n<% } %>\r\n");
#line default
#line hidden
#line 50 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
if (MvcHost.IsPartialView) {
// Do nothing.
@ -213,13 +282,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -213,13 +282,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line default
#line hidden
#line 45 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 56 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("</asp:Content>\r\n");
#line default
#line hidden
#line 46 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 57 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
} else {
PopIndent();
@ -228,13 +297,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -228,13 +297,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line default
#line hidden
#line 50 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 61 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
this.Write("\t</body>\r\n</html>\r\n");
#line default
#line hidden
#line 52 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
#line 63 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Delete.tt"
}
#line default

30
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Delete.tt

@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
<#@ template language="C#" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Reflection" #>
<# if (MvcHost.IsPartialView) { #>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<#= GetViewPageType() #>" %>
@ -29,6 +31,15 @@ @@ -29,6 +31,15 @@
#>
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# foreach (ModelProperty modelProperty in GetModelProperties()) { #>
<div class="display-label">
<%: Html.LabelFor(model => model.<#= modelProperty.Name#>) %>
</div>
<div class="display-field">
<%: Html.DisplayFor(model => model.<#= modelProperty.Name#>) %>
</div>
<# } #>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
@ -55,6 +66,11 @@ @@ -55,6 +66,11 @@
get { return (MvcTextTemplateHost)Host; }
}
public class ModelProperty
{
public string Name { get; set; }
}
public string GetViewPageType()
{
string viewDataTypeName = MvcHost.ViewDataTypeName;
@ -63,4 +79,18 @@ @@ -63,4 +79,18 @@
}
return String.Empty;
}
public IEnumerable<ModelProperty> GetModelProperties()
{
var properties = new List<ModelProperty>();
foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) {
properties.Add(CreateModelProperty(propertyInfo));
}
return properties;
}
ModelProperty CreateModelProperty(PropertyInfo propertyInfo)
{
return new ModelProperty() { Name = propertyInfo.Name };
}
#>

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Create.cs

@ -189,7 +189,7 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -189,7 +189,7 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
#line hidden
#line 38 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Create.tt"
foreach (var modelProperty in GetModelProperties()) {
foreach (ModelProperty modelProperty in GetModelProperties()) {
#line default
#line hidden

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Create.tt

@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# foreach (var modelProperty in GetModelProperties()) { #>
<# foreach (ModelProperty modelProperty in GetModelProperties()) { #>
<div class="editor-label">
@Html.LabelFor(model => model.<#= modelProperty.Name #>)
</div>

117
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Delete.cs

@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
namespace ICSharpCode.AspNet.Mvc.CSHtml {
using ICSharpCode.AspNet.Mvc;
using System.Collections.Generic;
using System.Reflection;
using System;
@ -18,12 +20,17 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -18,12 +20,17 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
private global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost hostValue;
#line 49 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 60 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
MvcTextTemplateHost MvcHost {
get { return (MvcTextTemplateHost)Host; }
}
public class ModelProperty
{
public string Name { get; set; }
}
public string GetModelDirective()
{
string viewDataTypeName = MvcHost.ViewDataTypeName;
@ -32,6 +39,20 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -32,6 +39,20 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
}
return String.Empty;
}
public IEnumerable<ModelProperty> GetModelProperties()
{
var properties = new List<ModelProperty>();
foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) {
properties.Add(CreateModelProperty(propertyInfo));
}
return properties;
}
ModelProperty CreateModelProperty(PropertyInfo propertyInfo)
{
return new ModelProperty() { Name = propertyInfo.Name };
}
#line default
#line hidden
@ -49,19 +70,19 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -49,19 +70,19 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
public virtual string TransformText() {
this.GenerationEnvironment = null;
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( GetModelDirective() ));
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("\r\n\r\n");
#line default
#line hidden
#line 6 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 8 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
if (MvcHost.IsPartialView) {
// Do nothing.
@ -71,49 +92,49 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -71,49 +92,49 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
#line default
#line hidden
#line 11 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("@{\r\n\tViewBag.Title = \"");
#line default
#line hidden
#line 12 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 14 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
#line default
#line hidden
#line 12 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 14 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("\";\r\n\tLayout = \"");
#line default
#line hidden
#line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.MasterPageFile ));
#line default
#line hidden
#line 13 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 15 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("\";\r\n}\r\n\r\n<h2>");
#line default
#line hidden
#line 16 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
#line default
#line hidden
#line 16 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("</h2>\r\n\r\n");
#line default
#line hidden
#line 18 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 20 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
} else {
@ -121,25 +142,25 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -121,25 +142,25 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
#line default
#line hidden
#line 21 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 23 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("<!DOCTYPE html>\r\n<html>\r\n\t<head runat=\"server\">\r\n\t\t<title>");
#line default
#line hidden
#line 24 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 26 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewName ));
#line default
#line hidden
#line 24 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 26 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("</title>\r\n\t</head>\r\n\t<body>\r\n");
#line default
#line hidden
#line 27 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 29 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
PushIndent("\t\t");
}
@ -148,26 +169,74 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -148,26 +169,74 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
#line default
#line hidden
#line 31 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 33 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("<fieldset>\r\n\t<legend>");
#line default
#line hidden
#line 32 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 34 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( MvcHost.ViewDataType.Name ));
#line default
#line hidden
#line 32 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("</legend>\r\n</fieldset>\r\n@using (Html.BeginForm()) {\r\n\t<p>\r\n\t\t<input type=\"submit\"" +
" value=\"Delete\"/> |\r\n\t\t@Html.ActionLink(\"Back\", \"Index\")\r\n\t</p>\r\n}\r\n");
#line 34 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("</legend>\r\n");
#line default
#line hidden
#line 35 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
foreach (ModelProperty modelProperty in GetModelProperties()) {
#line default
#line hidden
#line 36 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("\t\r\n\t<div class=\"display-label\">\r\n\t\t@Html.LabelFor(model => model.");
#line default
#line hidden
#line 38 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name ));
#line default
#line hidden
#line 38 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(")\r\n\t</div>\r\n\t<div class=\"display-field\">\r\n\t\t@Html.DisplayFor(model => model.");
#line default
#line hidden
#line 41 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name ));
#line default
#line hidden
#line 41 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write(")\r\n\t</div>\r\n");
#line default
#line hidden
#line 43 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
}
#line default
#line hidden
#line 44 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("</fieldset>\r\n@using (Html.BeginForm()) {\r\n\t<p>\r\n\t\t<input type=\"submit\" value=\"Del" +
"ete\"/> |\r\n\t\t@Html.ActionLink(\"Back\", \"Index\")\r\n\t</p>\r\n}\r\n");
#line default
#line hidden
#line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 51 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
if (MvcHost.IsPartialView) {
// Do nothing.
@ -178,13 +247,13 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml { @@ -178,13 +247,13 @@ namespace ICSharpCode.AspNet.Mvc.CSHtml {
#line default
#line hidden
#line 46 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 57 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
this.Write("\t</body>\r\n</html>\r\n");
#line default
#line hidden
#line 48 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
#line 59 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\CSHTML\Delete.tt"
}
#line default

30
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/CSHTML/Delete.tt

@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
<#@ template language="C#" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Reflection" #>
<#@ output extension=".cshtml" #>
<#= GetModelDirective() #>
@ -30,6 +32,15 @@ @@ -30,6 +32,15 @@
#>
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# foreach (ModelProperty modelProperty in GetModelProperties()) { #>
<div class="display-label">
@Html.LabelFor(model => model.<#= modelProperty.Name #>)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.<#= modelProperty.Name #>)
</div>
<# } #>
</fieldset>
@using (Html.BeginForm()) {
<p>
@ -51,6 +62,11 @@ @@ -51,6 +62,11 @@
get { return (MvcTextTemplateHost)Host; }
}
public class ModelProperty
{
public string Name { get; set; }
}
public string GetModelDirective()
{
string viewDataTypeName = MvcHost.ViewDataTypeName;
@ -59,4 +75,18 @@ @@ -59,4 +75,18 @@
}
return String.Empty;
}
public IEnumerable<ModelProperty> GetModelProperties()
{
var properties = new List<ModelProperty>();
foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) {
properties.Add(CreateModelProperty(propertyInfo));
}
return properties;
}
ModelProperty CreateModelProperty(PropertyInfo propertyInfo)
{
return new ModelProperty() { Name = propertyInfo.Name };
}
#>

27
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Delete.tt

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
<#@ template language="VB" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<#@ import namespace="Microsoft.VisualBasic.Constants" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Reflection" #>
<# If MvcHost.IsPartialView Then #>
<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl<#= GetViewPageType() #>" %>
@ -30,6 +32,15 @@ @@ -30,6 +32,15 @@
#>
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# For Each modelProperty As ModelProperty in GetModelProperties() #>
<div class="display-label">
<%: Html.LabelFor(Function(model) model.<#= modelProperty.Name #>) %>
</div>
<div class="display-field">
<%: Html.DisplayFor(Function(model) model.<#= modelProperty.Name #>) %>
</div>
<# Next #>
</fieldset>
<% Using Html.BeginForm() %>
<p>
@ -58,6 +69,10 @@ @@ -58,6 +69,10 @@
End Get
End Property
Public Class ModelProperty
Public Property Name As String
End Class
Public Function GetViewPageType() As String
Dim viewDataTypeName As String = MvcHost.ViewDataTypeName
If Not String.IsNullOrEmpty(viewDataTypeName) Then
@ -65,4 +80,16 @@ @@ -65,4 +80,16 @@
End If
Return String.Empty
End Function
Public Function GetModelProperties() As IEnumerable(Of ModelProperty)
Dim properties = New List(Of ModelProperty)()
For Each propertyInfo As PropertyInfo In MvcHost.GetViewDataTypeProperties()
properties.Add(CreateModelProperty(propertyInfo))
Next
Return properties
End Function
Function CreateModelProperty(ByVal propertyInfo As PropertyInfo) As ModelProperty
Return New ModelProperty() With { .Name = propertyInfo.Name }
End Function
#>

27
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/VBHTML/Delete.tt

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
<#@ template language="VB" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<#@ import namespace="Microsoft.VisualBasic.Constants" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Reflection" #>
<#@ output extension=".vbhtml" #>
<#= GetModelDirective() #>
@ -31,6 +33,15 @@ End Code @@ -31,6 +33,15 @@ End Code
#>
<fieldset>
<legend><#= MvcHost.ViewDataType.Name #></legend>
<# For Each modelProperty As ModelProperty in GetModelProperties() #>
<div class="display-label">
@Html.LabelFor(Function(model) model.<#= modelProperty.Name #>)
</div>
<div class="display-field">
@Html.DisplayFor(Function(model) model.<#= modelProperty.Name #>)
</div>
<# Next #>
</fieldset>
@Using Html.BeginForm()
@<p>
@ -54,6 +65,10 @@ End Using @@ -54,6 +65,10 @@ End Using
End Get
End Property
Public Class ModelProperty
Public Property Name As String
End Class
Function GetModelDirective() As String
Dim viewDataTypeName As String = MvcHost.ViewDataTypeName
If Not String.IsNullOrEmpty(viewDataTypeName) Then
@ -61,4 +76,16 @@ End Using @@ -61,4 +76,16 @@ End Using
End If
Return String.Empty
End Function
Public Function GetModelProperties() As IEnumerable(Of ModelProperty)
Dim properties = New List(Of ModelProperty)()
For Each propertyInfo As PropertyInfo In MvcHost.GetViewDataTypeProperties()
properties.Add(CreateModelProperty(propertyInfo))
Next
Return properties
End Function
Function CreateModelProperty(ByVal propertyInfo As PropertyInfo) As ModelProperty
Return New ModelProperty() With { .Name = propertyInfo.Name }
End Function
#>

59
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/AspxCSharpDeleteViewTemplateTests.cs

@ -2,6 +2,9 @@ @@ -2,6 +2,9 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using AspNet.Mvc.Tests.CodeTemplates.Models;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc.AspxCSharp;
@ -22,6 +25,16 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -22,6 +25,16 @@ namespace AspNet.Mvc.Tests.CodeTemplates
templatePreprocessor.Host = mvcHost;
}
IEnumerable<Delete.ModelProperty> GetModelProperties()
{
return templatePreprocessor.GetModelProperties();
}
Delete.ModelProperty GetFirstModelProperty()
{
return GetModelProperties().First();
}
[Test]
public void GetViewPageType_HostViewDataTypeNameIsMyAppMyModel_ReturnsMyAppMyModelSurroundedByAngleBrackets()
{
@ -150,6 +163,52 @@ MyView @@ -150,6 +163,52 @@ MyView
<%: Html.ActionLink(""Back"", ""Index"") %>
</p>
<% } %>
";
Assert.AreEqual(expectedOutput, output);
}
[Test]
public void GetModelProperties_ModelHasOnePropertyCalledName_ReturnsModelPropertyCalledName()
{
CreateViewTemplatePreprocessor();
mvcHost.ViewDataType = typeof(ModelWithOneProperty);
Delete.ModelProperty modelProperty = GetFirstModelProperty();
Assert.AreEqual("Name", modelProperty.Name);
}
[Test]
public void TransformText_ModelHasOnePropertyAndIsPartialView_ReturnsControlWithHtmlHelpersForModelProperties()
{
CreateViewTemplatePreprocessor();
mvcHost.IsPartialView = true;
Type modelType = typeof(ModelWithOneProperty);
mvcHost.ViewDataType = modelType;
mvcHost.ViewDataTypeName = modelType.FullName;
mvcHost.ViewName = "MyView";
string output = templatePreprocessor.TransformText();
string expectedOutput =
@"<%@ Control Language=""C#"" Inherits=""System.Web.Mvc.ViewUserControl<AspNet.Mvc.Tests.CodeTemplates.Models.ModelWithOneProperty>"" %>
<fieldset>
<legend>ModelWithOneProperty</legend>
<div class=""display-label"">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class=""display-field"">
<%: Html.DisplayFor(model => model.Name) %>
</div>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
<input type=""submit"" value=""Delete""/> |
<%: Html.ActionLink(""Back"", ""Index"") %>
</p>
<% } %>
";
Assert.AreEqual(expectedOutput, output);
}

59
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/RazorCSharpDeleteViewTemplateTests.cs

@ -2,6 +2,9 @@ @@ -2,6 +2,9 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using AspNet.Mvc.Tests.CodeTemplates.Models;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc.CSHtml;
@ -22,6 +25,16 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -22,6 +25,16 @@ namespace AspNet.Mvc.Tests.CodeTemplates
templatePreprocessor.Host = mvcHost;
}
IEnumerable<Delete.ModelProperty> GetModelProperties()
{
return templatePreprocessor.GetModelProperties();
}
Delete.ModelProperty GetFirstModelProperty()
{
return GetModelProperties().First();
}
[Test]
public void GetModelDirective_HostViewDataTypeNameIsMyAppMyModel_ReturnsRazorModelFollowedByMyAppMyModel()
{
@ -151,6 +164,52 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -151,6 +164,52 @@ namespace AspNet.Mvc.Tests.CodeTemplates
@Html.ActionLink(""Back"", ""Index"")
</p>
}
";
Assert.AreEqual(expectedOutput, output);
}
[Test]
public void GetModelProperties_ModelHasOnePropertyCalledName_ReturnsModelPropertyCalledName()
{
CreateViewTemplatePreprocessor();
mvcHost.ViewDataType = typeof(ModelWithOneProperty);
Delete.ModelProperty modelProperty = GetFirstModelProperty();
Assert.AreEqual("Name", modelProperty.Name);
}
[Test]
public void TransformText_ModelHasOnePropertyAndIsPartialView_ReturnsControlWithHtmlHelpersForModelProperty()
{
CreateViewTemplatePreprocessor();
mvcHost.IsPartialView = true;
Type modelType = typeof(ModelWithOneProperty);
mvcHost.ViewDataType = modelType;
mvcHost.ViewDataTypeName = modelType.FullName;
mvcHost.ViewName = "MyView";
string output = templatePreprocessor.TransformText();
string expectedOutput =
@"@model AspNet.Mvc.Tests.CodeTemplates.Models.ModelWithOneProperty
<fieldset>
<legend>ModelWithOneProperty</legend>
<div class=""display-label"">
@Html.LabelFor(model => model.Name)
</div>
<div class=""display-field"">
@Html.DisplayFor(model => model.Name)
</div>
</fieldset>
@using (Html.BeginForm()) {
<p>
<input type=""submit"" value=""Delete""/> |
@Html.ActionLink(""Back"", ""Index"")
</p>
}
";
Assert.AreEqual(expectedOutput, output);
}

Loading…
Cancel
Save