我有2个POST操作,每个操作都希望从一个操作系统重定向到另一个操作:
[HttpPost]
public IActionResult Foo()
{
bool isBar = handleFoo();
if (isBar) return RedirectToAction("Bar");
else return View();
}
[HttpPost]
public IActionResult Bar()
{
bool isFoo = handleBar();
if (isFoo) return RedirectToAction("Foo");
else return View();
}
假设用户提交表单并运行Bar
方法,如果布尔表达式isFoo
为真,则返回Foo
方法及其视图,否则返回当前{ {1}}查看。
目前,我的代码无法返回正确的操作视图,我该怎么办?
答案 0 :(得分:1)
请在您的情况下指定视图名称:
N.B never expose
答案 1 :(得分:0)
RedirectToAction使用的是GEt而不是POST,所以我假设这两个动作都在同一个控制器中,所以你可以调用另一个动作来调用这样的方法
[HttpPost]
public IActionResult Foo()
{
bool isBar = handleFoo();
if (isBar) return Bar();
else return View();
}
[HttpPost]
public IActionResult Bar()
{
bool isFoo = handleBar();
if (isFoo) return Foo();
else return View();
}
答案 2 :(得分:0)
希望我能为您的问题找到解决方案,代码应该是这样的。
[HttpGet]
public IActionResult Foo()
{
bool isBar = handleFoo();
if (isBar) return RedirectToAction("Bar");
else return View();
}
[HttpPost]
public IActionResult Bar()
{
bool isFoo = handleBar();
if (isFoo) return RedirectToAction("Foo");
else return View();
}
注意:请将 foo()方法的action属性设为[HttpGet]。
因为RedirectToAction()仅支持get请求,ie就像从浏览器发出新请求一样。
对于Bar()方法,您可以将action属性保留为[httppost],因为它是从表单调用的。
希望以上信息对解决您的问题有用,请让我知道您的想法或反馈
由于
KARTHIK