ASP.NET MVC有两个用户控件

时间:2010-05-03 20:34:42

标签: asp.net-mvc

我在页面上有两个用户控件,其中一个用户控件有这个文本aread。 用于添加注释,但当他们单击添加注释按钮时,页面将重新加载。 我不希望页面重新加载,我正在寻找一个没有这样做的例子 回发。

由于

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

不允许使用用于访问路径'/ Documents / TestNote / Documents / 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>

2 个答案:

答案 0 :(得分: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 Action

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");
}

答案 1 :(得分:0)

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