gpt4 book ai didi

javascript - 一键发送两个表单,然后重定向到第三个操作

转载 作者:行者123 更新时间:2023-11-28 18:23:04 24 4
gpt4 key购买 nike

是否可以同时提交 2 个表单到不同的操作?在操作中,我想设置 TempData 并重定向到第三个操作。

我尝试了此处描述的方法Submit two forms with one button我们建议每个表单都有一个输入字段。第一个表单输入“姓名”,第二个表单输入“姓氏”

    submitForms = function(){
document.forms["formForFirstAction"].submit();
document.forms["formForSecondAction"].submit();
window.location("/Home/ThirdAction")
}

我的操作看起来像...

    [HttpPost]        
public void FirstAction(string name) {
TempData["name"] = name;
}
[HttpPost]
public void SecondAction(string lastname) {
TempData["lastname"]=lastname;
}
public ActionResult ThirdAction () {
string fullname;
fullname = string.Format((string)TempData["name"] +
(string)TempData["lastname"]);
return View(fullname);
}

但是这不起作用。在大多数情况下,我只得到全名字符串中的姓名或姓氏。看起来像是异步的东西或者其他我现在不太了解的东西。你能帮我吗?

最佳答案

TempData 仅在下一个立即请求时可用。这就是您从临时数据字典中仅获取一项(这 2 个操作方法之一的最后一项)的原因。您应该考虑使用另一种持久化机制,例如 Session/database

另外,您应该考虑ajax,而不是提交表单

submitForms = function(){
$.post("@Url.Action("FirstAction")",$("#formForFirstAction").serialize());
$.post("@Url.Action("SecondAction")",$("#formForSecondAction").serialize());
window.location("/Home/ThirdAction")
}

这是一个使用 Session 来保存数据的示例

[HttpPost]
public void SecondAction(string lastname) {
Session["lastname"]=lastname;
}
public ActionResult ThirdAction () {
string fullname;
fullname = string.Format((string)Session["name"] +
(string)Session["lastname"]);
return View(fullname);
}

您也可以考虑使用jquery when()q.all 以确保您仅在 ajax 调用完成后才进行重定向(以避免回调 hell)

关于javascript - 一键发送两个表单,然后重定向到第三个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39643238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com