如何从外面提交表格?

时间:2017-03-20 14:54:24

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

我有一个标签式应用程序设置如下:

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 & Continue按钮,TabOne控制器的POST方法将会触发并尝试提交。

我的问题是,当我点击导航部分视图中的POSTTabOne链接,然后点击Tab Two时,我如何触发相同的Tab Three方法重定向到点击的标签?

1 个答案:

答案 0 :(得分:0)

如果将这些POST传递给Controller类,那么它非常简单。我注意到了这些&#34; Tabs&#34;与不同的Controller和Action相关联。我假设这是故意的,我的答案如下。如果没有,我会编辑它以反映您的结构。

在你的TabOneController.cs中,你应该有两个条目用于&#34; TabOne&#34;视图类型;一个普通的HttpGet和一个HttpPost。将HttpPost修改为:

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

Tab&#34; TabTwo&#34;是Action的名称和&#34; TabTwoController&#34;是控制器名称。

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

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