我有一個 .net core mvc web 專案,我正在嘗試在操作中獲取操作和控制器名稱。例如
string actionName = ControllerContext.RouteData.Values["action"].ToString();
string controllerName = ControllerContext.RouteData.Values["controller"].ToString();
這些代碼給了我控制器和操作的價值,但我想知道哪個頁面確實發送了那個帖子。
例如:我們在該控制器內部擁有HomeController和操作。RequestQuote如果另一個頁面從不同的控制器和動作觸發該 RequestQuote動作,我想獲得該控制器和動作的名稱。我希望我能清楚我想要表達的意思。
uj5u.com熱心網友回復:
這是您可以遵循的作業演示:
登錄控制器
public class LoginController : Controller
{
public IActionResult Index()
{
return RedirectToAction("RequestQuote", "Home");
}
}
家庭控制器
public class HomeController : Controller
{
public ActionResult RequestQuote()
{
string controllerName = HttpContext.Session.GetString("controller");
string actionName = HttpContext.Session.GetString("action");
return View();
}
}
動作過濾器:
public class CustomFilter : IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
string actionName = context.HttpContext.Request.RouteValues["action"].ToString();
string controllerName = context.HttpContext.Request.RouteValues["controller"].ToString();
context.HttpContext.Session.SetString("controller", controllerName);
context.HttpContext.Session.SetString("action", actionName);
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
}
}
在 Startup.cs 中注冊服務:
services.AddControllersWithViews(opt => {
opt.Filters.Add(new CustomFilter());
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/483890.html
