- MVC3 data-val-* attributes not emitted from model editor template
- [MetadataType(typeof(FieldTripRouteMetadata))]
- public partial class FieldTripRoute
- {
- private class FieldTripRouteMetadata
- {
- [Required]
- [DisplayFormat(DataFormatString = "{0:d}")]
- public DateTime Date { get; set; }
- [Required]
- [DisplayName("Route")]
- public int RouteID { get; set; }
- [Required]
- [DisplayName("Departure Time")]
- [UIHint("TimeWithPeriod")]
- [DisplayFormat(DataFormatString = "{0:h:mm tt}")]
- public DateTime DepartureTime { get; set; }
- [Required]
- [StringLength(255)]
- [DisplayName("Pickup Location")]
- public String PickupLocation { get; set; }
- [Required]
- [StringLength(255)]
- public String Destination { get; set; }
- [Required]
- [DisplayName("Arrival Time")]
- [UIHint("TimeWithPeriod")]
- [DisplayFormat(DataFormatString = "{0:h:mm t}")]
- public DateTime ArrivalTime { get; set; }
- public bool IsReturnRoute { get; set; }
- public int FieldTripID { get; set; }
- }
- @model FieldTripRoute
- <fieldset class="add@(routeType)Route" style="clear: both; width: 620px; margin-right: auto; margin-left: auto;">
- <legend>Add Route</legend>
- <div style="float: left; width: 275px;">
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.Date)</div>
- <div class="editor-field">@Html.EditorFor(model => model.Date)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.Date)</div>
- </div>
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.DepartureTime)</div>
- <div class="editor-field">@Html.EditorFor(model => model.DepartureTime)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.DepartureTime)</div>
- </div>
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.ArrivalTime)</div>
- <div class="editor-field">@Html.EditorFor(model => model.ArrivalTime)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.ArrivalTime)</div>
- </div>
- </div>
- <div style="float: left;">
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.RouteID)</div>
- <div class="editor-field">@Html.DropDownListFor(model => model.RouteID, Model.EditRouteList)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.RouteID)</div>
- </div>
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.PickupLocation)</div>
- <div class="editor-field">@Html.TextBoxFor(model => model.PickupLocation)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.PickupLocation)</div>
- </div>
- <div>
- <div class="editor-label">@Html.LabelFor(model => model.Destination)</div>
- <div class="editor-field">@Html.EditorFor(model => model.Destination)</div>
- <div class="validation-error">@Html.ValidationMessageFor(model => model.Destination)</div>
- </div>
- </div>
- <div style="clear: both; width: 100px; margin: 20px auto 0 auto;">
- <input type="button" id="submit@(routeType)Form" name="submit@(routeType)Form" value="Add" />
- </div>
- </fieldset>
- public class FieldTripEditViewModel
- {
- public FieldTrip Trip { get; set; }
- public FieldTripRoute Route { get; set; }
- public FieldTripRoute ReturnRoute { get; set; }
- public FieldTripEditViewModel(){}
- public FieldTripEditViewModel(FieldTrip trip)
- {
- this.Trip = trip;
- this.Route = new FieldTripRoute();
- this.ReturnRoute = new FieldTripRoute {IsReturnRoute = true};
- }
- }