I have the following POCO classes:
public class Location { public int LocationId { get; set; } public string Name { get; set; } public string Street { get; set; } public string City { get; set; } public string State { get; set; } public string ZipCode { get; set; } public string Country { get; set; } public float? Latitude { get; set; } public float? Longitude { get; set; } public string PhoneNumber { get; set; } public string EmailAddress { get; set; } public string Website { get; set; } public virtual ICollection<Program> Programs { get; set; } public virtual ICollection<PlayerType> PlayerTypes { get; set; } } public class PlayerType { public int PlayerTypeId { get; set; } public string Name { get; set; } public int SortOrder { get; set; } public bool IsActive { get; set; } public virtual ICollection<Location> Locations { get; set; } }
And the view model class
public class LocationViewModel { public Location Location { get; set; } public IList<PlayerType> SelectPlayerTypes { get; set; } public LocationViewModel() { Location = new Location(); } }
In my creation form, I defined the model as
@model Locator.Models.LocationViewModel
And they have the following fields:
div class="editor-label"> @Html.LabelFor(model => model.Location.Name) </div> <div class="editor-field"> @Html.EditorFor(model => model.Location.Name) @Html.ValidationMessageFor(model => model.Location.Name) </div>
In my controller for processing POST I have
[HttpPost] public ActionResult Create(LocationViewModel location) { if (ModelState.IsValid) { locationRepository.InsertOrUpdate(location.Location); locationRepository.Save(); return RedirectToAction("Index"); } location.SelectPlayerTypes = golferTypeRepository.All.Where(p => p.IsActive).ToList(); return View(location); }
The problem is that I have a Location object, but none of the properties should set the values entered into the form.
Am I doing something wrong here?
thanks
Mike
source share