2010-05-05 59 views
3

我在aspx页面上有两个用户控件,并且其中一个用户控件具有用于注释的文本区域。我试图使用JSON,以便当他们点击addnote按钮时,它不会重新加载页面。不允许使用用于访问路径'/ Documents/TestNote/Documents/AddNote'的HTTP动词POST

下面是我的Java脚本,但它说,它给这个错误

使用“/文件/ 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> 

我控制器

[HttpPost] 
    public ActionResult AddNote(AdNote note) 
    { 
     string msg = string.Format("Note {0} added", note.Note); 
     return Json(new AdNote { Note = msg }); 


    } 
+0

你确定你打的是正确的控制器和操作吗?如果删除'HttpPostAttribute'装饰,它是否正常工作? – 2010-05-05 18:16:34

+0

我不认为它进入了第三方,因为我提出了一个突破点并且没有达到那个目标,但是你是否看到我的代码中有任何错误? – user331772 2010-05-05 18:23:27

回答

0

我看到了两个错误:
- var msg = data.Msg;应该var msg = data.Note;
- 使用<%=Url.Action("AddNote","Documents")%>,而不是"Documents\AddNote"

+0

我做了更改后,你建议它进入控制器,但不会将我的父亲传递给控制器​​,当我尝试做Note.note时,它说“对象引用未设置为对象的实例”。 – user331772 2010-05-05 20:53:24

+0

好的,调试你的动作返回(例如使用萤火虫)并分享它。 – 2010-05-05 21:09:23

+0

还调试'data.'到'$ .post'。 – 2010-05-05 21:18:00

1

控制器使用

return Json(new AdNote { Note = msg },sonRequestBehavior.AllowGet); 
相关问题