|
|
|
|
@ -20,7 +20,7 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -20,7 +20,7 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
private global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost hostValue; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 62 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 72 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
|
|
|
|
|
MvcTextTemplateHost MvcHost { |
|
|
|
|
get { return (MvcTextTemplateHost)Host; } |
|
|
|
|
@ -29,6 +29,23 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -29,6 +29,23 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
public class ModelProperty |
|
|
|
|
{ |
|
|
|
|
public string Name { get; set; } |
|
|
|
|
public bool IsPrimaryKey { get; set; } |
|
|
|
|
|
|
|
|
|
public ModelProperty(PropertyInfo propertyInfo) |
|
|
|
|
{ |
|
|
|
|
this.Name = propertyInfo.Name; |
|
|
|
|
this.IsPrimaryKey = IsPrimaryKeyProperty(propertyInfo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool IsPrimaryKeyProperty(PropertyInfo propertyInfo) |
|
|
|
|
{ |
|
|
|
|
return IsMatchIgnoringCase(propertyInfo.Name, "id"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static bool IsMatchIgnoringCase(string a, string b) |
|
|
|
|
{ |
|
|
|
|
return String.Equals(a, b, StringComparison.OrdinalIgnoreCase); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public string GetViewPageType() |
|
|
|
|
@ -40,18 +57,49 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -40,18 +57,49 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
return String.Empty; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<ModelProperty> modelProperties; |
|
|
|
|
|
|
|
|
|
List<ModelProperty> ModelProperties { |
|
|
|
|
get { |
|
|
|
|
if (modelProperties == null) { |
|
|
|
|
modelProperties = new List<ModelProperty>(GetModelProperties()); |
|
|
|
|
} |
|
|
|
|
return modelProperties; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public IEnumerable<ModelProperty> GetModelProperties() |
|
|
|
|
{ |
|
|
|
|
var properties = new List<ModelProperty>(); |
|
|
|
|
foreach (PropertyInfo propertyInfo in MvcHost.GetViewDataTypeProperties()) { |
|
|
|
|
properties.Add(CreateModelProperty(propertyInfo)); |
|
|
|
|
properties.Add(new ModelProperty(propertyInfo)); |
|
|
|
|
} |
|
|
|
|
return properties; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ModelProperty CreateModelProperty(PropertyInfo propertyInfo) |
|
|
|
|
bool ModelHasPrimaryKey { |
|
|
|
|
get { return ModelPrimaryKeyName.Length > 0; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
string modelPrimaryKeyName; |
|
|
|
|
|
|
|
|
|
string ModelPrimaryKeyName { |
|
|
|
|
get { |
|
|
|
|
if (modelPrimaryKeyName == null) { |
|
|
|
|
modelPrimaryKeyName = GetModelPrimaryKeyName(); |
|
|
|
|
} |
|
|
|
|
return modelPrimaryKeyName; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public string GetModelPrimaryKeyName() |
|
|
|
|
{ |
|
|
|
|
return new ModelProperty() { Name = propertyInfo.Name }; |
|
|
|
|
foreach (ModelProperty modelProperty in ModelProperties) { |
|
|
|
|
if (modelProperty.IsPrimaryKey) { |
|
|
|
|
return modelProperty.Name; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
@ -222,56 +270,109 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -222,56 +270,109 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 34 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
foreach (ModelProperty modelProperty in GetModelProperties()) { |
|
|
|
|
|
|
|
|
|
foreach (ModelProperty modelProperty in ModelProperties) { |
|
|
|
|
if (!modelProperty.IsPrimaryKey) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 35 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 38 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("\t\r\n\t<div class=\"display-label\">\r\n\t\t<%: Html.LabelFor(model => model."); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 37 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name)); |
|
|
|
|
#line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.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\Details.tt"
|
|
|
|
|
#line 40 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.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\Details.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( modelProperty.Name)); |
|
|
|
|
#line 43 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.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\Details.tt"
|
|
|
|
|
#line 43 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.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\Details.tt"
|
|
|
|
|
#line 45 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 49 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("</fieldset>\r\n<p>\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 51 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
if (ModelHasPrimaryKey) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 52 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("\t<%: Html.ActionLink(\"Edit\", \"Edit\", new { id = Model."); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 52 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( ModelPrimaryKeyName )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 52 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write(" }) %> |\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 53 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 54 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("\t<%: Html.ActionLink(\"Edit\", \"Edit\") %> |\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 55 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 43 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("</fieldset>\r\n<p>\r\n\t<%: Html.ActionLink(\"Edit\", \"Edit\") %> |\r\n\t<%: Html.ActionLink" + |
|
|
|
|
"(\"Back\", \"Index\") %>\r\n</p>\r\n"); |
|
|
|
|
#line 56 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("\t<%: Html.ActionLink(\"Back\", \"Index\") %>\r\n</p>\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 48 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 58 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
|
|
|
|
|
if (MvcHost.IsPartialView) { |
|
|
|
|
// Do nothing.
|
|
|
|
|
@ -282,13 +383,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -282,13 +383,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 54 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 64 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("</asp:Content>\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 55 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 65 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
PopIndent(); |
|
|
|
|
@ -297,13 +398,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
@@ -297,13 +398,13 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 59 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 69 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
this.Write("\t</body>\r\n</html>\r\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 61 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
#line 71 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Details.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
|