- Sending model data from Knockout back to MVC 3
- function partSummary(item) {
- var self = this;
- self.ID = ko.observable(item.ID);
- self.serialNumber = ko.observable(item.SerialNumber);
- self.description = ko.observable(item.Description);
- self.manufacturer = ko.observable(item.Manufacturer);
- self.creationDate = ko.observable(item.DateCreated);
- self.active = ko.observable(item.IsActive);
- }
- self.savePart = function() {
- $.ajax("/PartKO/UpdatePart", {
- data: ko.toJSON(self.partDetails),
- type: "post",
- contentType: 'application/json',
- dataType: 'json'
- });
- };
- [HttpPost]
- public JsonResult UpdatePart(PartDetail part)
- {
- var dbPart = new PartGenericAccessor();
- dbPart.ID = part.ID;
- dbPart.Load();
- dbPart.Description = part.Description;
- dbPart.IsActive = Convert.ToBoolean(part.IsActive);
- var manufacturers = ManufacturerAccessor.LoadAll<ManufacturerAccessor>();
- if (part.Manufacturer != null)
- {
- var manufacturer = (from p in manufacturers where p.Name == part.Manufacturer select p.ID).First();
- dbPart.ManufacturerID = manufacturer;
- }
- dbPart.Save();
- return Json("Success!!");
- }
- public class PartDetail
- {
- public PartDetail(Guid id, string serial, string description, string manufacturer, DateTime created, bool isActive)
- {
- ID = id;
- SerialNumber = serial;
- Description = description;
- Manufacturer = manufacturer;
- DateCreated = created.ToShortDateString();
- IsActive = isActive.ToString(CultureInfo.InvariantCulture);
- }
- public Guid ID { get; set; }
- public string SerialNumber { get; set; }
- public string Description { get; set; }
- public string Manufacturer { get; set; }
- public string DateCreated { get; set; }
- public string IsActive { get; set; }
- }
- public class PartDetail
- {
- public PartDetail()
- { ... }
- }