嗨,大家好我有问题,我不明白为什么会发生这种情况.
出于某种原因,我的第二次提交时,我的ajax调用是双重发布.
@using (Ajax.BeginForm("Create","BasketPage",new AjaxOptions { InsertionMode = InsertionMode.Replace,UpdateTargetId = "myDiv",})) { <textarea id="comment" name="comment"> </textarea> <br /> <input type="submit" class="btn btn-blue" value="Comment" /> }
调用的BasketPage控制器操作如下所示:
public PartialViewResult Create(BasketPage currentPage,string comment) { Comment newComment = new Comment() { Username = User.Identity.Name,Text = HttpUtility.HtmlEncode(comment),PageID = currentPage.PageLink.ID }; commentRepository.Save(newComment); var model = new BasketListModel(currentPage) { CommentsList = commentRepository.GetComments(currentPage.PageLink) }; return PartialView("_Comment",model); }
问题场景:
>我输入一个值,提交表格.一切都按预期工作.
>我再次(因此第二次)输入一个值,提交表格.现在调用Save方法两次 – 这导致该值在DB中保存两次,创建两个具有相同值的行.
如果我用常规的@ Html.BeginForm替换Ajax.beginform,则只调用一次Save方法.
我错过了什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。