【发布时间】:2014-01-30 21:51:29
【问题描述】:
通常我会创建一个提交按钮来发布数据,但在这种情况下,我希望 [HttpPost] 操作在页面加载时发布。此页面正在从其他来源收集数据,用户无需点击提交。
【问题讨论】:
-
使用 ajax 调用。在这里查看我的答案stackoverflow.com/questions/19643864/…
-
+1 有趣的问题!
通常我会创建一个提交按钮来发布数据,但在这种情况下,我希望 [HttpPost] 操作在页面加载时发布。此页面正在从其他来源收集数据,用户无需点击提交。
【问题讨论】:
只需使用 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("");
}
【讨论】:
如果你不想使用 AJAX,你可以简单地用 jQuery 提交表单:
$('form').submit();
【讨论】: