【问题标题】:How to Submit Form from Outside?如何从外部提交表格?
【发布时间】:2017-08-11 22:08:48
【问题描述】:

我有一个选项卡式应用程序设置如下:

Navigation.cshtml 局部视图

<li><a asp-area="" asp-controller="TabOne" asp-action="TabOne">Tab One</a></li>
<li><a asp-area="" asp-controller="TabTwo" asp-action="TabTwo">Tab Two</a></li>
<li><a asp-area="" asp-controller="TabThree" asp-action="TabThree">Tab Three</a></li>

TabOne.cshtml

<form id="TabOne" method="post" class="form-horizontal">
    <!-- Fields here -->
    <button type="submit" class="btn btn-success pull-right">Save & Continue</button>
</form>

所以在Tab One 上,如果您点击Save &amp; Continue 按钮,TabOne 控制器的 POST 方法将触发并尝试提交。

我的问题是,当我在导航部分视图中单击 Tab TwoTab Three 链接然后重定向到单击的选项卡时,如何为 TabOne 触发相同的 POST 方法?

【问题讨论】:

  • 这是引导程序tab吗?
  • @Win - 不,我只是为我的标签使用引导导航栏。

标签: asp.net asp.net-mvc razor asp.net-core asp.net-core-mvc


【解决方案1】:

如果这些 POST 被传递到 Controller 类中,那么这很容易。我注意到这些“选项卡”中的每一个都与不同的控制器和操作相关联。我假设这是我在下面的回答故意的。如果没有,我将对其进行编辑以反映您的结构。

在您的 TabOneController.cs 中,您应该有两个“TabOne”视图类型条目;一个常规的 HttpGet 和一个 HttpPost。修改 HttpPost 的样子:

[HttpPost, ActionName("TabOne")]
public async Task<IActionResult> TabOne() {
    // Do whatever tasks here to process the form data.
    return RedirectToAction("TabTwo", "TabTwoController");
}

其中“TabTwo”是操作的名称,“TabTwoController”是控制器名称。

如果您需要将任何数据传递给选项卡二,您可以使用以下方法添加路由参数:

return RedirectToAction("TabTwo", "TabTwoController", new { param = value, param2 = value2 });

【讨论】:

  • 感谢您的回复,但我还是有点困惑。因此,如果我在Tab One 上并且我想通过使用Tab One&lt;form /&gt; 之外的&lt;li&gt;&lt;a asp-area="" asp-controller="TabThree" asp-action="TabThree"&gt;Tab Three&lt;/a&gt;&lt;/li&gt; 选项卡链接导航到Tab Three,我将如何为Tab One 触发我的POST ?当前单击Tab Three 的链接只会触发Tab ThreeHttpGet 方法。我希望它为我所在的任何选项卡触发 POST 方法,然后重定向到我单击的任何选项卡。
猜你喜欢
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2021-08-19
相关资源
最近更新 更多