2016-06-01 3 views
0

В настоящее время я пытаюсь обновить список обязанностей после того, как пользователь отправил новую пошлину. Я пытаюсь использовать Ajax. Однако я не уверен, как использовать ajax для отправки на мой контроллер, а затем добавить в свой список. Как использовать поле данных в моем методе ajax и как обновить список?Использование ajax для обновления списка.

Мой контроллер:

 [HttpPost] 
     Public ActionResult CreateDuty(PartialViewModel d) 
{ 
     db.DutiesTable.Add(d.OneDuty); 
        db.SaveChanges(); 
        pv.DutyList = db.DutiesTable.ToList(); 

        return View("Index"); 
    } 

Мой Ajax метод:

<script> 
    $('#getDuty').click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: "/Home/CreateDuty", 
      data: {d : d} 
     }).success(function (data) { 
      alert(data + status); 
     }); 
    }); 
</script> 

ответ

0

Не хватает информации. Откуда я пришел и что это (javascript).

Для вашего кода EF я предполагаю, что DutiesTable НЕ содержит PartialViewModel, поэтому существует сопоставление, которое должно происходить между моделью представления и классами модели EF.

[HttpPost] 
Public ActionResult CreateDuty(DutyViewModel d) 
{ 
    Duty newduty = new Duty(){ /*map values from d to fields here*/} 
    db.Duties.Add(newduty); 
    db.SaveChanges(); 
    return View("Index"); 
} 

После того, как у вас есть отправка данных через контроллер и сохранение с EF вы должны решить, если ваш Javascript требуется копия обновленного объекта (отображается обратно в PartialViewModel, скорее всего, или если простой успех/провал достаточно сообщений и делать то, что нужно на этой стороне. Я не знаю, что вы имеете в виду здесь: «а затем добавьте в мой список» - какой список?

+0

Вы имеете в виду d в моем методе Ajax в поле данных? Я надеялся, что это будет тем же самым, что и в контроллере. Однако я не совсем понимаю, как использовать Ajax. Откуда возникает переменная «mappedduty»? По списку я имею в виду список, в котором все обязанности Это будет DutyList. Возможно ли, что t o обновить его, чтобы новая функция была добавлена ​​к ней? – Seb

+0

Я собираюсь обновить свой ответ некоторыми вещами, переименованными, чтобы сделать его более очевидным. –

+0

Помогает ли обновление? Суть в том, что класс модели представления не совпадает с классом дежурства. Вы должны сопоставить между классом EF для таблицы и моделью представления для пользовательского интерфейса. Есть несколько рамок, которые могут тривиализировать это для вас, самым популярным из которых является automapper. –

Смежные вопросы