gpt4 book ai didi

asp.net-mvc - MVC如何实现两个不同的post Action

转载 作者:行者123 更新时间:2023-12-02 18:13:21 26 4
gpt4 key购买 nike

我正在开发这个非常重要的松鼠应用程序。

有一个向导可以将松鼠添加到数据库中。

假设该向导有三个屏幕:

  1. 松鼠名称详细信息
  2. 高度和体重
  3. 坚果储存

因此,在向导的每一步中,我都想将详细信息保存到数据库中。

高度和体重 View 如下所示:

@model HeightWeightViewModel
@{
ViewBag.Title = "Height and weight";
}

<h2>Height and weight</h2>

@using (Html.BeginForm()) {

<h3>Height</h3>
<div>
@Html.EditorFor(model => model.Squirrel.Height)
</div>

<h3>Weight</h3>
<div>
@Html.EditorFor(model => model.Squirrel.Weight)
</div>
<input type="submit" value="Previous" />
<input type="submit" value="Next" />
}

所以我希望“上一个”和“下一个”按钮能够保存这些详细信息。保存时的上一个按钮也会使用户到松鼠名字详情页面。下一步将保存并将用户带到坚果存储页面。

我使用“下一步”按钮工作:

public ActionResult Edit(SquirrelViewModel squirrelViewModel)
{
_unitOfWork.SaveHeightWeight(squirrelViewModel);

return RedirectToAction("Edit", "NutStorage", new { id = squirrelViewModel.Squirrel.Id });
}

因此“下一步”按钮会保存详细信息并将用户发送到 NutStorage 页面。

“上一步”按钮的作用与“下一步”相同,但我实际上希望它在保存后将用户发送到向导的第一步。

我不知道该怎么做。我还有其他方法可以发布上一篇文章吗?

我无法想象如何实现这个。

也许我应该使用 ActionLinks 而不是提交按钮,但这不会发布要保存的详细信息。

任何人都可以建议如何获取上一个按钮来保存并将用户发送到向导的第一页Next 功能是否正常工作?

最佳答案

您可以设置提交按钮的名称:

<input type="submit" name="direction" value="Previous" />
<input type="submit" name="direction" value="Next" />

然后将该名称添加为 Controller 操作的参数并测试它的值以确定要执行的操作:

public ActionResult Edit(SquirrelViewModel squirrelViewModel, string direction)
{
_unitOfWork.SaveHeightWeight(squirrelViewModel);

if (direction == "Next")
return RedirectToAction("Edit", "NutStorage", new { id = squirrelViewModel.Squirrel.Id });
if (direction == "Previous")
return RedirectToAction("Edit", "SquirrelName", new { id = squirrelViewModel.Squirrel.Id });
return View();
}

关于asp.net-mvc - MVC如何实现两个不同的post Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127874/

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