使用MVC4如何在没有提交按钮的情况下提交[HttpPost]动作?

时间:2014-01-30 21:51:29

标签: asp.net-mvc asp.net-mvc-4

通常我会创建一个提交按钮来发布数据,但在这种情况下,我希望[HttpPost]操作在页面加载时发布。此页面正在从其他来源收集数据,用户无需点击提交。

2 个答案:

答案 0 :(得分:4)

只需使用ajax调用,假设get动作返回标记列表,如下所示:

public ActionResult Index()
    {
        var tags = _tagRepository.GetAllTag();
        return View(tags);
    }

现在在索引视图中你拥有所有标签,并且还想添加删除功能,现在你可以通过ajax调用来做到这一点:

@model IList<Blog.Domain.Model.Tag>

//list of tags here 

    <script type="text/javascript">
        $(function () {
            $(".delete").click(function (e) {
                e.preventDefault();
                var link = this.href;
                $.ajax({
                    type: 'Post',
                    url: link,
                    success: function (data) { }
                });
            });
        });
    </script>

关于后期行动:

   [HttpPost]
        public JsonResult Delete(int tagId)
        {
            if (ModelState.IsValid)
            {
                _tagRepository.RemoveTag(tagId);
                _tagRepository.Save();
                RedirectToAction("Index");
            }
            return Json("");
        }

答案 1 :(得分:3)

如果您不想使用AJAX,只需使用jQuery提交表单:

$('form').submit();