2013-05-28 3 views
0

Я использую ajax для добавления данных формы в базу данных. Мой добавочный код отлично работает, но мне нужно как-то захватить вновь созданный идентификатор и использовать его в моем jquery после того, как сохранение выполнено.получение возвращаемого значения при ajax сохранение новой формы

Вот мой сохранить JQuery:

$(document).ready(function() { 
    $("#saveChanges").on("click", function(e) { 
     var formData = $("form").serialize(); 
     e.preventDefault(); 
     $.ajax({ 
      url: "newListing/", 
      data: formData, 
      type: "POST", 
      success: function (resp) { 
       debugger; 
       alert($('#id').val()); 
       $('#listChosen').html(""); 
       $('#listChosen').load("/Listing/SearchListing/" + $('#id').val()); 
       alert("listing added"); 
      }, 
      error: function(xhr, ajaxoptions, thrownError) { 
       alert(xhr.responseText); 
      } 
     }); 
    }); 

То, что я пытаюсь сделать, это выставить вновь созданный идентификатор из newListing и использовать его при вызове/SearchListing /.

Действие контроллера я называю новым листинг выглядит следующим образом:

[HttpPost] 
    public ActionResult newListing(Listing newList) 
    { 

     _listingservice.NewListing(newList); 
     return View(); 
    } 

фильтры Это действие через мой уровень службы через интерфейсы к моему хранилище и в конечном счете делает этот вызов:

 try 
     { 
      _entities.Listings.Add(newList); 
      _entities.SaveChanges(); 
     } 
     catch (Exception) 
     { 
      return false; 
      throw; 
     } 
     return true; 

на savechange() новый идентификатор доступен, но я не знаю, как отфильтровать его обратно до моего кода успеха в jquery.

Может кто-нибудь предложить какие-либо советы о том, как я могу это сделать.

Большое спасибо

ответ

0

Вы можете вернуть сохраненный объект из NewListing. Вы, кажется, не быть с помощью View(), что вы в настоящее время рендеринга, так что вы могли бы просто ответить Ид вместо:

[HttpPost] 
public ActionResult newListing(Listing newList) 
{ 
    var entity = _listingservice.NewListing(newList); 
    return Content(entity.Id.ToString()); 
} 

Тогда ваш Аякса получит ID:

... 
success: function (id) { 
    debugger; 
    alert(id); 
    $('#listChosen').html(""); 
    $('#listChosen').load("/Listing/SearchListing/" + id); 
    alert("listing added"); 
}, 
... 
+0

гениальное - спасибо, это то, что мне нужно :-) – bruceiow

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