[英]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.