2013-10-15 4 views
0

У меня есть следующий код JavaScript:Как выполнить Ajax вызов с использованием магистральной JS в MVC

App.Views.AddPerson = Backbone.View.extend({ 
     el: '#addPerson', 

     events: { 
      'submit': 'submit', 
     }, 

     submit: function (e) { 
      e.preventDefault(); 
      var newPersonName = $(e.currentTarget).find('input[type=text]').val(); 
      var person = new App.Models.Person({ name: newPersonName, age: newAge, occupation: newOccupation }); 
      this.collection.add(person); 
      this.$('#todo-title').val(''); 

      $.ajax({ 
       type: 'POST', 
       url: '@Url.Action("InsertRecord", "Home")', 
       data: newPersonName , 
       success: function(data) { 
       alert(data); 
       }, 
       error: function(){ 
       alert("error"); 
       } 
      }); 
     } 
    }); 

В контроллере я следующий метод:

[HttpPost] 
    public ActionResult InsertRecord(string str) 
    { 

     return View(); 
    } 

Но он не выполняет Аякс вызовите и поднимите ошибку.

+0

Что ошибка? –

ответ

0

Попробуйте это:

submit: function (e) { 
     e.preventDefault(); 
     var newPersonName = $(e.currentTarget).find('input[type=text]').val(); 
     var person = new App.Models.Person({ name: newPersonName, age: newAge, occupation: newOccupation }); 
     this.collection.add(person); 
     this.$('#todo-title').val(''); 

     $.ajax({ 
     type: 'POST', 
     url: window.location + "Home/InsertRecord", 
     data: {ID : newPersonName}, 
     success: function(data) { 
     // Code after success }, 
      error: function(){ 
      alert("error"); 
      } 
     }); 
0

Используйте этот

$.ajax({ 
      type: 'POST', 
      url: '@Url.Action("InsertRecord", "Home")', 
      data: {str:newPersonName} , // use the same paramtre name as in Controller 
      success: function(data) { 
      alert(data); 
       }, 
       error: function(){ 
       alert("error"); 
       } 
      }); 

Надеется, что это помогает

+1

На самом деле я попробовал метод, который вы написали, прежде чем публиковать вопрос. Ну, спасибо за ответ. –

0
$.ajax({ 
      type: 'POST', 
      url: window.location + "Home/InsertRecord", 
      data: {ID : newPersonName, 
        Name:newAge, 
        DeptID:newOccupation }, 
      success: function(data) { 
      alert(data); 
       }, 
       error: function(){ 
       alert("error"); 
       } 
      }); 
+0

Это ответ на ваш собственный вопрос? Вы должны предоставить больше информации о вашей проблеме и о том, как этот код ее решает. – jbl

+1

@jbl В моем вопросе я выполняю вызов ajax, но это не работает. Основной причиной проблемы является «@ Url.Action». Я думаю, что «@ Url.Action» не работает, когда мы пишем код в .js-файле. –

+0

@BhupendraShukla '@ Url.Action («actionname») работает внутри одинарных кавычек. Ваша проблема заключалась в том, что вы не передавали имя параметра в данных, я ответил на ваш вопрос, передав имя параметра. –

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