【问题标题】:Using MVC4 how can you submit the [HttpPost] action without a submit button?使用 MVC4 如何在没有提交按钮的情况下提交 [HttpPost] 操作?
【发布时间】:2014-01-30 21:51:29
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

只需使用 ajax 调用,想象一下 get 操作返回的标签列表如下:

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

现在在 index 视图中你拥有所有标签,并且还想添加删除功能,现在你可以通过 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("");
        }

【讨论】:

    【解决方案2】:

    如果你不想使用 AJAX,你可以简单地用 jQuery 提交表单:

    $('form').submit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2011-12-04
      • 2011-04-02
      • 1970-01-01
      • 2010-12-26
      • 2019-09-26
      相关资源
      最近更新 更多