我有一个标签式应用程序设置如下:
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方法将会触发并尝试提交。
我的问题是,当我点击导航部分视图中的POST
或TabOne
链接,然后点击Tab Two
时,我如何触发相同的Tab Three
方法重定向到点击的标签?
答案 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 });