【问题标题】:return View() not working inside controllerreturn View() 在控制器内部不起作用
【发布时间】:2014-03-10 22:51:41
【问题描述】:

我正在使用 ASP.NET MVC C#。我对以下代码行有我的看法:

@using (Html.BeginForm("TastingParty", "Contact"))

我正在提交到与当前页面不同的控制器和操作,因此我必须在该行中添加自定义控制器和操作。现在它到达我的控制器并在我调用的方法的底部“return View();”所以它会再次显示相同的页面。但它正在 Contact 控制器中寻找该视图,因为那是我发送它的地方。

如何返回它来自的原始视图?希望这一切都有意义。

【问题讨论】:

  • 你需要 return RedirectToAction(...) 并把 Action/Controller 对

标签: c# asp.net asp.net-mvc


【解决方案1】:
return RedirectToAction(Action,Controler)

你在找这个吗?

【讨论】:

  • 这应该像“return View()”那样显示我的验证错误吗?因为当它返回时我没有看到任何错误。
  • 所以看起来这个方法失去了我的 ModelState。嗯……我正在阅读:stackoverflow.com/questions/4642845/…
【解决方案2】:

您可以使用return RedirectToAction(...

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx

或者,如果您希望能够在不同的控制器之间重用视图,您可以将其放在Views\Shared 文件夹中。

在后一种情况下,您可以将发布的模型返回到该视图。

public ActionResult YourAction(YourViewModel postedModel) {

    // do something

    return View(postedModel);
}

同样,如果您希望这是一个共享视图,您可以将它放在Views\Shared\YourAction.cshtml 下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2017-03-07
    • 2015-10-27
    • 1970-01-01
    • 2022-06-16
    • 2017-11-04
    相关资源
    最近更新 更多