2010-05-03 3 views
0

У меня есть два пользовательских элемента управления на странице, и один из элементов управления пользователя имеет этот текст. , который используется для добавления заметки, но при нажатии кнопки добавления заметки перезагрузка страницы. Я не хочу, чтобы страница перезагружалась, я искал пример, который делается без postback.ASP.NET MVC два пользовательских элемента управления

Благодаря

я устал делать это с помощью JSON, но он выдает следующую ошибку

Почте глагол HTTP, используемый для доступа к пути «/ Документы/TestNote/Документы/AddNote» не допускается.

<script type="text/javascript"> 
    $(document).ready(function() { 

     $("#btnAddNote").click(function() { 
      alert("knock knock"); 
      var gnote = getNotes(); 
      //var notes = $("#txtNote").val(); 
      if (gnote == null) { 
       alert("Note is null"); 
       return; 

      } 

      $.post("Documents/AddNote", gnote, function(data) { 
       var msg = data.Msg; 
       $("#resultMsg").html(msg); 
      }); 
     }); 
    }); 

    function getNotes() { 
     alert("I am in getNotes function"); 
     var notes = $("#txtNote").val(); 
     if (notes == "") 
      alert("notes is empty"); 
     return (notes == "") ? null : { Note: notes }; 
    } 
</script> 
</asp:Content> 
+0

Можете ли вы предоставить более подробную информацию? Эта кнопка представляет собой кнопку отправки формы? Вы также упоминаете postback - вы действительно используете MVC или используете ли вы веб-формы? – womp

+0

Это что-то вроде этого, я использую asp.net mvc user331772

ответ

1

Что-то вроде этого даст вам возможность отправить данные в действие, выполнить некоторую логику и вернуть результат Json, после чего вы сможете обновить свой вид соответственно.

Javascript Функция

function AddNote(){ 
    var d = new Date(); // IE hack to prevent caching 

    $.getJSON('/MyController/MyAction', { data: "hello world", Date: d.getTime() }, function(data) { 
    alert(data); 
    // call back update your view here 
    }); 
} 

MyController Действие

public virtual JsonResult MyAction(string data) 
{ 
    // do stuff with your data here, which right now my data equals hello world for this example 
    return Json("ReturnSomeObject"); 
} 
+0

см. Выше. Я добавил код, который я пытаюсь выполнить, но это бросает ошибку. Спасибо. – user331772

0

Что вы хотите, это обновление AJAX. Всегда будет postback (если вы не удовлетворены простым обновлением страницы Javascript, которое не сохраняется на сервере), но это не будет проблесковым эффектом экрана.

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