Customizing Templates?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| using System.ComponentModel.DataAnnotations; using System.Web.Mvc; public class SampleModel { public static SampleModel Create() { return new SampleModel { Boolean = true , EmailAddress = "admin@contoso.com" , Decimal = 21.1234M, Integer = 42, Hidden = "Uneditable" , HiddenAndInvisible = "Also uneditable" , Html = "This is <b>HTML</b> enabled" , MultilineText = "This\r\nhas\r\nmultiple\r\nlines" , NullableBoolean = null , Password = "supersecret" , String = "A simple string" , Url = "http://www.microsoft.com/" , }; } public bool Boolean { get ; set ; } [DataType(DataType.EmailAddress)] public string EmailAddress { get ; set ; } public decimal Decimal { get ; set ; } [HiddenInput] public string Hidden { get ; set ; } [HiddenInput(DisplayValue = false )] public string HiddenAndInvisible { get ; set ; } [DataType(DataType.Html)] public string Html { get ; set ; } [Required] [Range(10, 100)] public int Integer { get ; set ; } [DataType(DataType.MultilineText)] public string MultilineText { get ; set ; } public bool ? NullableBoolean { get ; set ; } [DataType(DataType.Password)] public string Password { get ; set ; } public string String { get ; set ; } [DataType(DataType.Url)] public string Url { get ; set ; } [DisplayFormat(NullDisplayText = "(null value)" )] public ChildModel ChildModel { get ; set ; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| using System.ComponentModel.DataAnnotations; [DisplayColumn( "FullName" )] public class ChildModel { [Required, StringLength(25)] public string FirstName { get ; set ; } [Required, StringLength(25)] public string LastName { get ; set ; } [ScaffoldColumn( false )] public string FullName { get { return FirstName + " " + LastName; } } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| using System.Web.Mvc; public class HomeController : Controller { static SampleModel model = SampleModel.Create(); public ViewResult Index() { return View(model); } public ViewResult Edit() { return View(model); } [HttpPost] [ValidateInput( false )] public ActionResult Edit(SampleModel editedModel) { if (ModelState.IsValid) { model = editedModel; return RedirectToAction( "Details" ); } return View(editedModel); } } |
1
2
3
4
5
6
7
8
9
10
11
12
| <%@ Page Language="C#" MasterPageFile="~/Views/shared/Site.master" Inherits="ViewPage< SampleModel >" %> < asp:Content ContentPlaceHolderID = "MainContent" runat = "server" > < h3 >Details</ h3 > < fieldset style = "padding: 1em; margin: 0; border: solid 1px #999;" > <%= Html.DisplayForModel() %> </ fieldset > < p ><%= Html.ActionLink("Edit", "Edit") %></ p > </ asp:Content > |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <%@ Page Language="C#" MasterPageFile="~/Views/shared/Site.master" Inherits="ViewPage< SampleModel >" %> < asp:Content ID = "Content2" ContentPlaceHolderID = "MainContent" runat = "server" > < h3 >Edit</ h3 > <% using (Html.BeginForm()) { %> < fieldset style = "padding: 1em; margin: 0; border: solid 1px #999;" > <%= Html.ValidationSummary("Broken stuff:") %> <%= Html.EditorForModel() %> < input type = "submit" value = " Submit " /> </ fieldset > <% } %> < p ><%= Html.ActionLink("Details", "Index") %></ p > </ asp:Content > |
Tabular Layout?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <% if (Model == null) { %> <%= ViewData.ModelMetadata.NullDisplayText %> <% } else if (ViewData.TemplateInfo.TemplateDepth > 1) { %> <%= ViewData.ModelMetadata.SimpleDisplayText %> <% } else { %> < table cellpadding = "0" cellspacing = "0" border = "0" > <% foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm))) { %> <% if (prop.HideSurroundingHtml) { %> <%= Html.Display(prop.PropertyName) %> <% } else { %> < tr > < td > < div class = "display-label" style = "text-align: right;" > <%= prop.GetDisplayName() %> </ div > </ td > < td > < div class = "display-field" > <%= Html.Display(prop.PropertyName) %> </ div > </ td > </ tr > <% } %> <% } %> </ table > <% } %> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <% if (ViewData.TemplateInfo.TemplateDepth > 1) { %> <%= ViewData.ModelMetadata.SimpleDisplayText %> <% } else { %> < table cellpadding = "0" cellspacing = "0" border = "0" > <% foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !ViewData.TemplateInfo.Visited(pm))) { %> <% if (prop.HideSurroundingHtml) { %> <%= Html.Editor(prop.PropertyName) %> <% } else { %> < tr > < td > < div class = "editor-label" style = "text-align: right;" > <%= prop.IsRequired ? "*" : "" %> <%= Html.Label(prop.PropertyName) %> </ div > </ td > < td > < div class = "editor-field" > <%= Html.Editor(prop.PropertyName) %> <%= Html.ValidationMessage(prop.PropertyName, "*") %> </ div > </ td > </ tr > <% } %> <% } %> </ table > <% } %> |
Opinionated Input Builders
No comments:
Post a Comment