[英]How to pass two parameters to a controller in ASP.NET Core MVC?
[英]ASP.NET MVC - how to pass parameters to actions on a different controller
正在由另一个已经离开的开发人员构建的MVC网站上工作。 我对MVC并不那么着迷,如果这是一个可怕的问题,我深表歉意。
在此站点的控制器中,有一个ErrorController。 它有两个关联的视图保存在\\ Views \\ Error中。 控制器没有做太多事情:
public class ErrorController : Controller
{
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View("NotFound");
}
public ActionResult Error()
{
return View("Error");
}
}
我正在尝试扩展此控制器,以便可以传递错误消息并通知用户,但是当我从其他控制器调用时,我仍在努力理解如何向其传递参数。 因此,例如:
public class ManagerController : Controller
{
public ActionResult SubmitDetails()
{
if (ModelState.IsValid)
{
// do stuff and return a View
}
//if we get this far, we've got an error or an invalid state
return View("../Error/Error");
}
}
渲染错误视图。 但是,如果将其添加到ErrorController:
public ActionResult Error(string errorMessage)
{
ViewBag.ErrorMessage = errorMessage;
return View("Error");
}
我不知道如何从其他控制器的动作中调用它。 关于以下主题的变体:
return View("../Error/Error", "test error message");
导致错误:未找到视图“ ../Error/Error”或其主视图,或者视图引擎不支持搜索到的位置。
如何将消息,或者更好的是带有一堆消息的对象传递给控制器? 还是我走错路了?完整的错误消息提示我应该使用共享视图?
只需使用Redirect
而不是return View...
就像这样
return RedirectToAction("Error", "ErrorMesige");
您需要使用RedirectToAction("ActionName","ControllerName")
在你的情况下
return RedirectToAction("Error", "Error");
要在控制器之间传递值,必须使用TempData []
您还可以将数据作为参数传递,如下所示。
return RedirectToAction("Error", "Error", new { errorMessage = "Your Error Message Here" });`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.