【发布时间】:2021-02-15 07:43:35
【问题描述】:
我是 asp.net 的新手,遇到了一个非常基本的问题(在 c# 方面也没有太多经验,所以我可能误用了术语)。我有 2 个视图连接到同一模型。在第一个视图中,用户输入为模型属性之一分配了一个值——我们称之为 A1。在依赖于 A1 值的第二个视图中,用户输入填充了模型属性的其余部分,如下例所示。
控制器看起来像这样:
public ActionResult ClalledFromView1(MyModel model)
{
return View("View2", model);
}
public ActionResult CalledFromView2(MyModel model)
{
model.CheckAllAttributes();
return View("View3");
}
View1 看起来像这样:
<html>
@using (Html.BeginForm("CalledFromView1", "ControllerName", FormMethod.Post))
{
@Html.TextBoxFor(model => model.A1)
<button type="submit">Submit</button>
}
</html>
视图 2 看起来像这样:
<html>
@using (Html.BeginForm("CalledFromView2", "ControllerName", FormMethod.Post))
{
@if (Model.A1 == "some value")
{
@Html.TextBoxFor(model => model.A2)
}
else
{
@Html.TextBoxFor(model => model.A3)
}
<button type="submit">Submit</button>
}
</html>
发生的情况是,在调用 CalledFromView2 时,A1 为空,但 A2 已填充,并且与 A1 的原始值一致。我希望在控制器和两个视图之间来回传递相同的模型而不清除任何属性。 TIA。
【问题讨论】:
标签: c# asp.net-mvc asp.net-core razor