点击时,我正在使用@Html.ActionLink("Home", "Home")
当前传回“主页”。但是,当单击操作链接时,是否可以让页面自己执行帖子(即在控制器中点击其后事件)。
我基本上需要一种导航到页面的方法,但首先要将所有当前页面数据提交到模型中。
注意:忘记添加ActionLink
位于页面上的partialView内
答案 0 :(得分:2)
您可以使用AjaxHelper
方法ActionLink()
提交当前页面的POST
。然后,对于控制器中的HttpPost
操作方法,只需重定向到Home
。
这样的事情:
您的观点
@Ajax.ActionLink("Click me", "SubmitMe", "Current", new AjaxOptions() { HttpMethod = "Post" })
您的控制器
public class CurrentController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult SubmitMe(SomeModel someModel)
{
// do what you have to do here
return RedirectToAction("Home", "Home");
}
}
答案 1 :(得分:1)
您可以使用javascript(我建议使用jQuery)提交表单并在之后重定向。
您还可以提交表单并在RedirectToAction()
装饰的Action方法中使用[HttpPost]
。
$(function() {
$("#YourButton").click(function(e) {
e.preventDefault();
$.post("YourUrlToPostTo", $("#yourForm").serialize(), function() {
// success, redirect now
});
});
});
答案 2 :(得分:0)
您无法以这种方式使用操作链接。你可以做的是使用jQuery创建JSON对象或字符串化表单的内容,然后通过设置方法调用.ajax()方法。
您的jQuery代码可能如下所示:
$('#yourActionLink').click(function(e) {
e.preventDefault();
var yourValues = $("form").serialize();
$.post($(this).attr("href"), yourValues, function() {
alert("Data saved.");
});
});
这应该是那样的。