gpt4 book ai didi

c# - 在 ASP.NET MVC 3 中多次传递模型

转载 作者:行者123 更新时间:2023-11-30 21:08:33 25 4
gpt4 key购买 nike

我想制作一个类似问卷的不同部分的东西。因此,我创建了一个 Index.cshtml,其中包含相应的部分 View (取决于我的步进整数的数量)。有点像

@using (Html.BeginForm())
{
@Html.Partial("Step" + Model.Step, Model)
<p>
@if (Model.Step > 1)
{
<button name="button" value="Zurück" />
}
<input type="submit" value="Weiter" />
</p>
}

您可能已经注意到,它会查找类似“Step1.cshtml”等的内容,例如放置相应输入掩码的位置

@model CVGen.Models.InputModel
<div class="editor-field">
@Html.TextBoxFor(model => model.Anrede)
@Html.ValidationMessageFor(model => model.Anrede)
</div>

我的模型包含整个问卷的属性,所以我当然想每次都将整个模型传递给下一步/ View (如果我返回模型也应该传递回来,这样信息就可以了仍然存在,用户可以对其进行编辑)。但这对我不起作用。我的 Controller 看起来像这样:

public ActionResult Index()
{
InputModel model = new InputModel();

return View(model);
}

[HttpPost]
public ActionResult Index(InputModel model)
{
model.Step++;
return View(model);
}

另外我的model.Step属性一直是0(或者1,在HttpPost中加了1之后),这当然是因为我的model不会被第二次pass了。

有什么建议吗?

最佳答案

可能值得查看之前关于该主题的博客示例(以及此处关于 SO 的一些示例):

简而言之,无论是否允许使用 jQuery/javascript,我都会执行以下操作:

  • 创建一个包含向导所需的所有字段的模型。
  • 创建一个 Controller (用于向导步骤)
  • 为每个向导页面创建一个操作(同样,所有操作都应使用相同的向导模型)
  • 在将所有内容保存到数据库的过程结束时创建一个SAVE 操作。

此外,在上面的示例中,您没有在表单标签内的 View 中包含“步骤”。这将在回发时需要。您应该添加如下内容:

@Html.HiddenFor(model => model.Step)

你的里程可能会有所不同 - 祝你好运

关于c# - 在 ASP.NET MVC 3 中多次传递模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9600042/

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