2015-11-10 3 views
0

На главной странице в представлении пользователь выбирает проект, и этот выбор заполняет частичный вид (сначала его частичный) с данными. В этом частичном представлении пользователь также может выбрать элемент, который предоставляет частичное представление редактирования ниже предыдущего. Здесь можно добавить, обновить или удалить новый элемент.
Вопрос: когда новый элемент добавлен, первый частичный вид должен быть обновлен. Метод, как я пытаюсь достичь этого, как это:
Обновление частичного просмотра MVC с успехом ajax

function addBottle() { 
      var code = $("#Code").val(); 
      var desc = $("#Description").val(); 
      var id = $("#ProjectId").val(); 
      $.ajax({ 
       url: "@Url.Action("AddBottleType", "Managers")", 
       data: { code: code, desc: desc, id: id }, 
       type: "POST", 
       datatype: "text", 
       success: function (data) { 
        if (typeof data == "undefined") { 
         alert("Something went wrong. Sorry!"); 
        } 
        if (data.Success) { 
         $.alert(data.Data, "Success!"); 
         $.ajax({ 
           url: "@Url.Action("BottleTypes", "Managers")", 
           data: { projectId: id }, 
           type: "GET", 
           datatype: "text", 
         }); 
        } else { 
         $.alert(data.Data, "Warning!"); 
        } 
       } 
      }); 
    }; 

Это дает мне данные в контроллере, но вид не обновляется. Наверное, это не лучший способ, я открываю предложения, решения.
Я также сделал свою часть, google и stackoverflow - мой друг, но ни один из этих решений не работал.

+0

Где код, предназначенный для обновления вида? Вы надеетесь, что действие контроллера сделает это? – VictorySaber

+0

Контроллер возвращает частичный вид. – Paxsentry

+0

Вам нужно загрузить часть, которая возвращается в ваш div. Сейчас действие возвращается, но страница не знает, что с ним делать. – VictorySaber

ответ

0

Вам необходимо загрузить его в свой div. Что-то вроде этого. Проверьте успешность действий вашего контроллера, поэтому вам не нужно делать Success() в переднем конце:

function addBottle() { 
     var code = $("#Code").val(); 
     var desc = $("#Description").val(); 
     var id = $("#ProjectId").val(); 
     $.ajax({ 
      url: "@Url.Action("AddBottleType", "Managers")", 
      data: { code: code, desc: desc, id: id }, 
      type: "POST", 
      datatype: "text", 
      success: function (data) { 
       if (typeof data == "undefined") { 
        alert("Something went wrong. Sorry!"); 
       } 
       if (data.Success) { 
        $.alert(data.Data, "Success!"); 
        $("#bottleTypes").load("/Managers/BottleTypes", { projectId: id }); 
       } else { 
        $.alert(data.Data, "Warning!"); 
       } 
      } 
     }); 
}; 
+1

С небольшой модификацией работает :) Спасибо :) – Paxsentry