2010-05-03 116 views
0

我在页面上有两个用户控件,其中一个用户控件有这个文本控件。 这是用来添加一个笔记,但当他们点击添加注释按钮页面重新加载。 我不希望页面重新加载,我正在寻找一个例子,这是没有 回发。ASP.NET MVC两个用户控件

感谢

我厌倦了这样使用JSON,但它引发以下错误

用于访问路径“//TestNote /文件/文件AddNote”是不允许的HTTP动词POST。

<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

你能否提供更多细节?这个按钮是一个表单提交按钮吗?你也提到回发 - 你真的使用MVC还是实际使用webforms? – womp 2010-05-03 20:37:57

+0

这是一些这样的事情,我正在使用asp.net mvc user331772 2010-05-03 20:46:28

回答

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 2010-05-05 17:48:15

0

你想要的是AJAX更新。总会有一个回传(除非您对简单的Javascript页面更新不保存在服务器上感到满意),但它不再是闪烁的屏幕效果。